PHP-Redis 扩展应用类

分享链接:https://github.com/xcjiu/PHP-Redis

PHP-Redis 扩展应用类

github地址:

(开始在 PHP 中使用 Redis 前, 请确保已经安装了 redis 服务及 PHP redis 驱动)

这是一个Redis应用类,所有方法均使用静态调用(包含字符串方法,哈希表,列表,集合,有序集合常用方法封装)

实例化类配置参数说明:$redis = new redis\Redis($config);

$config = [
    'host' => '127.0.0.1',  //服务器连接地址。默认='127.0.0.1'
    'port' => '6379',  //端口号。默认='6379'
    'expire' => 3600,  // 默认全局过期时间,单位秒。不填默认3600
    'password' => '',  // 连接密码,如果有设置密码的话
    'db' => 0,   //缓存库选择。默认0
    'timeout' => 10  // 连接超时时间(秒)。默认10
];

/*不用配置所有的参数,只需要配置和默认配置不同的参数即可,如:
$config = [
    'password' => '123456',
    'expire' => 7200
];*/

如果不需要更改默认参数值的话,不需要传入任何参数:$redis = new redis\Redis();

如果你放在框架里用(或有自动加载机制),直接命名空间引入即可用,不需要实例化类!

use redis\Redis; 就可直接静态调用了

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

关于set方法,我测试了下$redis->set('test',13.6);取出来正常的?redis版本3.0.7

 /**
     * 存储一个键值
     * @param  string or int $key 键名
     * @param  mix $value 键值,支持数组、对象
     * @param  int $expire 过期时间(秒)
     * @return bool 返回布尔值
     */
    public static function set($key, $value, $expire='')
    {
        if(is_int($key) || is_string($key)){
            //如果是int类型的数字就不要序列化,否则用自增自减功能会失败,
            //如果不序列化,set()方法只能保存字符串和数字类型,
            //如果不序列化,浮点型数字会有失误,如13.6保存,获取时是13.59999999999
            $value = is_int($value) ? $value : serialize($value);
            $expire = (int)$expire ? $expire : self::$expire;
            if(self::$redis->set($key, $value) && self::$redis->expire($key, $expire)){
                return true;
            }
            return false;
        }
        return false;
    }
6年前 评论

@lovecn 浮点型数字都做了序列化保存的,所以获取时和保存时的值是一致的!$redis->set()方法还可以直接保存数组,获取时也是数组

6年前 评论

@shohan 你没明白我意思,我是说不用你的方法,原生的set存取浮点数没问题

6年前 评论

@lovecn 哦,版本低的会有问题的

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!