redis及php扩展配置(windows+php5)

redis及php扩展配置(windows+php5)

1. 安装

redis官方github链接:https://github.com/antirez/redis

redis官方默认没有windows版本,微软提供的一个版本:https://github.com/MicrosoftArchive/redis

文件说明: redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查 redis-check-aof.exe:更新日志检查 redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询

2. 启动

使用默认配置启动redis服务

redis-server.exe redis.windows.conf

启动客户端

redis-cli.exe -h 127.0.0.1 -p 6379 

3. 安装php扩展

  1. 下载扩展:https://github.com/nicolasff/phpredis/downloads(注意版本)
  2. 将下载的 php_redis.dll 放如php扩展目录(ext)中,并修改配置文件 php.ini (有顺序之分)
extension=php_igbinary.dll
extension=php_redis.dll
  1. 重启服务,查看phpinfo()中redis扩展

4. 编写测试代码

编写redis公共类,支出对象与数组的序列化与反序列化

// 有效时间,0 代表永久有效,单位 s
define('REDIS_TTL', 15);

class MyRedis{

    private static $handler;

    private static function handler(){
        if(ALLOW_REDIS == false){
            return false;
        }
        if(!self::$handler){
            self::$handler = new Redis();
            self::$handler -> connect(REDIS_HOST,REDIS_PORT);
            self::$handler -> auth(REDIS_AUTH);
        }
        return self::$handler;
    }

    public static function get($key){
        if(ALLOW_REDIS == false){
            return false;
        }else{
            $value = self::handler() -> get($key);
            $value_serl = @unserialize($value);
            if(is_object($value_serl)||is_array($value_serl)){
                return $value_serl;
            }
            return $value;
        }
    }

    /**
     * @param $key
     * @param $value
     * @param int $timeDiff 与 REDIS_TTL 的时差
     * @return bool
     */
    public static function set($key,$value,$timeDiff=0){
        if(ALLOW_REDIS == false){
            return false;
        }else{
            if(is_object($value)||is_array($value)){
                $value = serialize($value);
            }
            if(REDIS_TTL){
                return self::handler() -> setex($key,REDIS_TTL+$timeDiff,$value);
            }else{
                return self::handler() -> set($key,$value);
            }
        }
    }
}

调用测试

MyRedis::set($redisKey, $result);
echo MyRedis::get($redisKey);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏晓晨的专栏

.NET Core 控制台应用程序使用异步(Async)Main方法

1013
来自专栏散尽浮华

redis持久化策略梳理及主从环境下的策略调整记录

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。可以不定期的通过异步方式保存到磁盘上(即“半持久化模式”...

43710
来自专栏武培轩的专栏

Redis持久化

Redis是内存型数据库,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。 Redis支持两种持久化的方式,一...

4165
来自专栏IT可乐

Redis详解(七)------ AOF 持久化

  上一篇文章我们介绍了Redis的RDB持久化,RDB 持久化存在一个缺点是一定时间内做一次备份,如果redis意外down掉的话,就会丢失最后一次快照后的所...

1160
来自专栏Laoqi's Linux运维专列

Redis的持久化-AOF

3188
来自专栏Golang语言社区

golang模板template自定义函数用法示例

golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: packag...

4674
来自专栏ytkah

Laravel展示产品-CRUD之show

  上一篇讲了Laravel创建产品-CRUD之Create and Store,现在我们来做产品展示模块,用到是show,①首先我们先修改controller...

783
来自专栏Laoqi's Linux运维专列

Redis的两种备份方式

1243
来自专栏fixzd

redis系列:RDB持久化与AOF持久化

Redis的数据都是存储在内存中的,所以Redis持久化也就是要把Redis存储在内存中的数据保存到硬盘。

671
来自专栏desperate633

深入理解Redis持久化Redis 持久化

本文翻译自官方文档 http://redis.io/topics/persistence 。

902

扫码关注云+社区