RedisCache
2013-11-16 16:20
316 查看
<?php /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ class RedisCache { public static $host; public static $port; public static $db; protected static $redis; /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function getInstance() { try { if (empty(self::$redis)) { $host = !empty(self::$host) ? self::$host : (defined('REDIS_HOST') ? REDIS_HOST : '127.0.0.1'); $port = !empty(self::$port) ? self::$port : (defined('REDIS_PORT') ? REDIS_PORT : 6379); $db = !empty(self::$db) ? self::$db : (defined('REDIS_DB') ? REDIS_DB : ''); self::$redis = new Redis(); self::$redis->connect($host, $port); if ($db) self::$redis->select($db); } return self::$redis; } catch (Exception $e) { error_log('FILE: ' . __FILE__); error_log('LINE: ' . __LINE__); error_log('ERROR: ' . var_export($e, TRUE)); return FALSE; } } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function set($key, $value, $timeout=0) { self::getInstance(); self::$redis->set($key, json_encode($value, TRUE)); if ($timeout > 0) { self::$redis->setTimeout($key, $timeout); } } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function get($key) { self::getInstance(); $ret = self::$redis->get($key); return json_decode($ret, TRUE); } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function exists($key) { try { self::getInstance(); return self::$redis->exists($key); } catch (Exception $e) { return FALSE; } } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function incr($key) { self::getInstance(); return self::$redis->incr($key); } /** * @author LJ <liujin.chen@qq.com> * @since 2014-02-25 */ public static function keys($key) { self::getInstance(); return self::$redis->keys($key); } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-20 */ public static function flushDB() { self::getInstance(); return self::$redis->flushDB(); } /** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */ public static function flushAll() { self::getInstance(); return self::$redis->flushAll(); } }
相关文章推荐
- Couchbase集群和Redis集群解析
- Replication on redis
- Redis 资料整理
- redis主从配置文件
- linux下安装redis
- redis内存预分配策略
- redis集群自动配置脚本
- celery配合rabbitmq任务队列实现任务的异步调度执行[celery redis] 推荐
- Redis源码学习-Master&Slave的命令交互
- Redis 命令参考
- Redis 命令参考
- redis中文手册
- Redis学习手册(Key操作命令)
- Redis学习手册(List数据类型)
- windows 下安装php redis 模块
- redis安装
- Redis中文配置文档
- Linux环境下打Redis数据库的扩展
- windows下redis安装和php的redis扩展安装
- php redis 函数手册