BaseRedisService.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class BaseRedisService
  10. {
  11. var $redis;
  12. var $prefix;
  13. var $auto_id_db; //hash数据 存储 user_id room_id gift_id
  14. var $video_db; //:video_id hash数据
  15. var $video_group_db; // hMSet 有 group:id:video_id
  16. var $user_db; //:user_id hash数据
  17. var $user_hash_db; //所有会员数据 user_id hash数据 存储在线数据
  18. var $user_robot_db; //user_id set数据 ,机器人的集合
  19. var $video_viewer_level_db;//:video_id zset 房间观众列表,user_id:会员级别
  20. //======观众权重=========
  21. var $gz_level_weight = 1000; //等级权重
  22. var $gz_rz_weight = 500; //认证权重
  23. var $gz_real_weight = 2000000;//真人权重
  24. // private $id;
  25. /**
  26. +----------------------------------------------------------
  27. * 架构函数
  28. +----------------------------------------------------------
  29. * @access public
  30. +----------------------------------------------------------
  31. */
  32. public function __construct()
  33. {
  34. if(isset($GLOBALS['redisdb'])){
  35. $this->redis = $GLOBALS['redisdb'];
  36. }else{
  37. $this->redis = new Rediscache($GLOBALS['distribution_cfg']['RDB_CLIENT'], $GLOBALS['distribution_cfg']['RDB_PORT'],$GLOBALS['distribution_cfg']['RDB_PASSWORD']);
  38. }
  39. $this->prefix = $GLOBALS['distribution_cfg']['REDIS_PREFIX'];
  40. $this->auto_id_db = $this->prefix.'auto_id_db';
  41. $this->user_db = $this->prefix.'user:';
  42. $this->user_hash_db = $this->prefix.'user_hash_db';
  43. $this->user_robot_db = $this->prefix.'user_robot';
  44. $this->video_db = $this->prefix.'video:';
  45. $this->video_viewer_level_db = $this->prefix.'video_viewer_level:';
  46. $this->video_group_db = $this->prefix.'video_group_db';
  47. }
  48. //获取最新的user_id
  49. public function get_user_id(){
  50. return $this->redis->hIncrBy($this->auto_id_db,'user_id',1);
  51. }
  52. //设置最新的user_id
  53. public function set_user_id($user_id){
  54. return $this->redis->hSet($this->auto_id_db,'user_id',$user_id);
  55. }
  56. //获取最新的video_id
  57. public function get_video_id(){
  58. return $this->redis->hIncrBy($this->auto_id_db,'video_id',1);
  59. }
  60. //设置最新的video_id
  61. public function set_video_id($video_id){
  62. return $this->redis->hSet($this->auto_id_db,'video_id',$video_id);
  63. }
  64. //获取最新的gift_id
  65. public function get_gift_id(){
  66. return $this->redis->hIncrBy($this->auto_id_db,'gift_id',1);
  67. //return $this->redis->hGet($this->auto_id_db,'gift_id');
  68. }
  69. //设置最新的gift_id
  70. public function set_gift_id($gift_id){
  71. return $this->redis->hSet($this->auto_id_db,'gift_id',$gift_id);
  72. }
  73. //获取 auto_id_db hash 中 key的值
  74. public function get_auto_val($key){
  75. return $this->redis->hIncrBy($this->auto_id_db,$key,1);
  76. }
  77. //设置 auto_id_db hash 中 key的值
  78. public function set_auto_val($key,$val){
  79. return $this->redis->hSet($this->auto_id_db,$key,$val);
  80. }
  81. /*
  82. * 增加
  83. */
  84. public function insert($key,$data){
  85. filter_null($data);
  86. return $this->redis->hMSet($this->prefix.$key,$data);
  87. }
  88. /*
  89. *
  90. */
  91. public function delete($key){
  92. $this->redis->delete($this->prefix.$key);
  93. }
  94. /*
  95. * 更新
  96. */
  97. public function update($key,$data){
  98. filter_null($data);
  99. return $this->redis->hMSet($this->prefix.$key,$data);
  100. }
  101. /*
  102. *
  103. */
  104. public function incry($db,$key,$val){
  105. return $this->redis->hIncrBy($this->prefix.$db,$key,$val);
  106. }
  107. /*
  108. * 获取单个
  109. */
  110. public function getOne($key,$field){
  111. return $this->redis->hGet($this->prefix.$key,$field);
  112. }
  113. /*
  114. * 获取行
  115. */
  116. public function getRow($key,$fields=''){
  117. if(!$fields){
  118. return $this->redis->hGetAll($this->prefix.$key);
  119. }else{
  120. return $this->redis->hMGet($this->prefix.$key,$fields);
  121. }
  122. }
  123. public function set_lock($key,$value,$exp=10){
  124. $re = $this->redis->set_lock($key,$value,$exp);
  125. return $re;
  126. }
  127. public function keys_searche($search_name){
  128. return $this->redis->keys_searche($this->prefix,$search_name);
  129. }
  130. public function get_video_watch_num($vedio_id){
  131. $video_data = $this->redis->hMGet($this->video_db.$vedio_id,array('virtual_watch_number','robot_num','watch_number')) ;
  132. $virtual_watch_number = $video_data['virtual_watch_number'];
  133. $robot_num = $video_data['robot_num'];
  134. $watch_num = $video_data['watch_number'];
  135. $num = $virtual_watch_number + $watch_num + $robot_num;
  136. return $num;
  137. }
  138. }//类定义结束
  139. ?>