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; 就可直接静态调用了

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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;
    }
5年前 评论

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

5年前 评论

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

5年前 评论

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

5年前 评论

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