1. class redisInit {
  2.  
  3. private $redis; //redis对象
  4.  
  5. /**
  6. * 初始化Redis
  7. * $config = array(
  8. * 'server' => '127.0.0.1' 服务器
  9. * 'port' => '6379' 端口号
  10. * )
  11. * @param array $config
  12. */
  13. public function init($config = array()) {
  14. if ($config['server'] == '') $config['server'] = '127.0.0.1';
  15. if ($config['port'] == '') $config['port'] = '6379';
  16. $this->redis = new Redis();
  17. $this->redis->connect($config['server'], $config['port']);
  18. return $this->redis;
  19. }
  20.  
  21. /**
  22. * 设置值
  23. * @param string $key KEY名称
  24. * @param string|array $value 获取得到的数据
  25. * @param int $timeOut 时间
  26. */
  27. public function set($key, $value, $timeOut = 0) {
  28. $value = json_encode($value, TRUE);
  29. $retRes = $this->redis->set($key, $value);
  30. if ($timeOut > 0) $this->redis->setTimeout($key, $timeOut);
  31. return $retRes;
  32. }
  33.  
  34. /**
  35. * 通过KEY获取数据
  36. * @param string $key KEY名称
  37. */
  38. public function get($key) {
  39. $result = $this->redis->get($key);
  40. return json_decode($result, TRUE);
  41. }
  42.  
  43. /**
  44. * 删除一条数据
  45. * @param string $key KEY名称
  46. */
  47. public function delete($key) {
  48. return $this->redis->delete($key);
  49. }
  50.  
  51. /**
  52. * 清空数据
  53. */
  54. public function flushAll() {
  55. return $this->redis->flushAll();
  56. }
  57.  
  58. /**
  59. * 数据入队列
  60. * @param string $key KEY名称
  61. * @param string|array $value 获取得到的数据
  62. * @param bool $right 是否从右边开始入
  63. */
  64. public function push($key, $value ,$right = true) {
  65. $value = json_encode($value);
  66. return $right ? $this->redis->rPush($key, $value) : $this->redis->lPush($key, $value);
  67. }
  68.  
  69. /**
  70. * 数据出队列
  71. * @param string $key KEY名称
  72. * @param bool $left 是否从左边开始出数据
  73. */
  74. public function pop($key , $left = true) {
  75. $val = $left ? $this->redis->lPop($key) : $this->redis->rPop($key);
  76. return json_decode($val);
  77. }
  78.  
  79. /**
  80. * 数据自增
  81. * @param string $key KEY名称
  82. */
  83. public function increment($key) {
  84. return $this->redis->incr($key);
  85. }
  86.  
  87. /**
  88. * 数据自减
  89. * @param string $key KEY名称
  90. */
  91. public function decrement($key) {
  92. return $this->redis->decr($key);
  93. }
  94.  
  95. /**
  96. * key是否存在,存在返回ture
  97. * @param string $key KEY名称
  98. */
  99. public function exists($key) {
  100. return $this->redis->exists($key);
  101. }
  102.  
  103. /**
  104. * 返回redis对象
  105. * redis有非常多的操作方法,我们只封装了一部分
  106. * 拿着这个对象就可以直接调用redis自身方法
  107. */
  108. public function redis() {
  109. return $this->redis;
  110. }
  111. }

PHP Redis 普通封装类的更多相关文章

  1. StackExchange.Redis 访问封装类

    最近需要在C#中使用Redis,在Redis的官网找到了ServiceStack.Redis,最后在测试的时候发现这是个坑,4.0已上已经收费,后面只好找到3系列的最终版本,最后测试发现还是有BUG或 ...

  2. StackExchange.Redis通用封装类分享(转)

    阅读目录 ConnectionMultiplexer 封装 RedisHelper 通用操作类封 String类型的封装 List类型的封装 Hash类型的封装 SortedSet 类型的封装 key ...

  3. StackExchange.Redis通用封装类分享

    前两天朋友问我,有没有使用过StackExchange.Redis,问我要个封装类,由于之前都是使用ServiceStack.Redis,由于ServiceStack.Redis v4版本后是收费版的 ...

  4. redis操作封装类

    class Redis {     // 默认配置名称(使用load_config加载) private $_default_config_path = 'package/cache/redis'; ...

  5. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager

    Redis缓存服务器是一款key/value数据库,读110000次/s,写81000次/s,因为是内存操作所以速度飞快,常见用法是存用户token.短信验证码等 官网显示Redis本身并没有Wind ...

  6. 使用AOP 实现Redis缓存注解,支持SPEL

    公司项目对Redis使用比较多,因为之前没有做AOP,所以缓存逻辑和业务逻辑交织在一起,维护比较艰难所以最近实现了针对于Redis的@Cacheable,把缓存的对象依照类别分别存放到redis的Ha ...

  7. asp.net core上使用Redis探索(2)

    在<<asp.net core上使用Redis探索(1)>>中,我介绍了一个微软官方实现Microsoft.Extensions.Caching.Redis的类库,这次,我们使 ...

  8. redis常见错误处理

    --1]当内存不足引起  redis出错 先尝试下列语句,指定redis使用内存 redis-server.exe redis.windows.conf --maxheap 200mredis-ser ...

  9. Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager 转发非原创

    Windows下Redis缓存服务器的使用 .NET StackExchange.Redis Redis Desktop Manager   Redis缓存服务器是一款key/value数据库,读11 ...

随机推荐

  1. ERROR 1005 (HY000): Can't create table'matrix.system_log' (errno: 150)

    CREATE TABLE `user` (`id` bigint(32) NOT NULL AUTO_INCREMENT ,`name` varchar(32) CHARACTER SET utf8 ...

  2. virtualbox usb连接问题解决

    生命在于折腾... 神奇的liinux... ubuntu 14.04 LTS sudo apt-get install virtualbox -y 然后建好虚拟机之后(windows也好,linux ...

  3. 【个人笔记】003-PHP基础-01-PHP快速入门-03-PHP环境搭建

    003-PHP基础-01-PHP快速入门 03-PHP环境搭建 1.客户端(浏览器) IE FireFox CHROME Opera Safari 2.服务器 是运行网站的基本 是放置程序代码的地方 ...

  4. 使用ASP.NET注册工具aspnet_regiis.exe注册IIS

    该工具的名称为aspnet_regiis.exe,在32位机上,该工具存在于C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,在64位机中“Framework ...

  5. 设计模式之原型模式(Prototype)

    1.出现原因 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作:由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口. 如何应对这种变化?如何向“客户程序(使用这些对 ...

  6. 爬虫组NABC

    Need(需求): 我们小组的研究课题是编写一个更实用的爬虫软件,编写时会应用到学长的部分代码并在其基础上完善创新. 鉴于学长代码已经实现了基本功能,即从网站上面爬取相关的Word文档等与计算机有关的 ...

  7. Array.Copy

    var bt = new byte[] { 0x03, 0x00, 0x01, 0xD9, 0x23 }; var result = new byte[] { 0x01, 0x00, 0x03, 0x ...

  8. SQL Server数据库事务日志存储序列

    原文 原文:http://blog.csdn.net/tjvictor/article/details/5251351   如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job ...

  9. Window7中Eclipse运行MapReduce程序报错的问题

    按照文档:http://www.micmiu.com/bigdata/hadoop/hadoop2x-eclipse-mapreduce-demo/安装配置好Eclipse后,运行WordCount程 ...

  10. jquery ajax对特殊字符进行转义防止js注入使用示例

    在使用ajax进行留言的时候,出现了一个问题.因为留言内容写完之后,通过ajax提交内容,同时使用js把留言的内容添加到页面上来.浏览留言的时候也是通过ajax请求,然后再显示的.这样,如果有人在留言 ...