Window下PHP环境配置使用Redis总结

什么是Redis?

  Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。它和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

  另外,redis还支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

  redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。save seconds updates,save配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。appendonly yes/no ,appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。appendfsync no/always/everysec ,appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

  redis 的6种过期策略redis 中的默认的过期策略是volatile-lru 。设置方式

复制代码
  config set maxmemory-policy volatile-lru
  maxmemory-policy 六种方式
  volatile-lru:只对设置了过期时间的key进行LRU(默认值)
  allkeys-lru : 是从所有key里 删除 不经常使用的key
  volatile-random:随机删除即将过期key
  allkeys-random:随机删除
  volatile-ttl : 删除即将过期的
  noeviction : 永不过期,返回错误
  maxmemory-samples 3 是说每次进行淘汰的时候 会随机抽取3个key 从里面淘汰最不经常使用的(默认选项)
复制代码

  如何安装配置?

  1,使用前我们要先安装redis,这里我们选择在github官网上下载redis,地址是 https://github.com/MicrosoftArchive/redis/releases。在这里我们根据需要下载适合的版本压缩包,下载好后解压到本地目录。

  2,在cmd中进入redis目录,运行 redis-server.exe 或 redis-server redis.windows.conf 命令,出现下图则表示redis安装成功。

  注意:

  1、开启redis 的同时加载了conf配置文件,则表示后续需要密码权限,这样可以保证redis数据的安全性。在redis 配置文件里面,找到requirepass并打开其屏蔽,后面跟着的就是密码。例如 requirepass redis123,就表示redis服务端的密码就是redis123。

  2、在window系统中使用本地作为redis服务器时要保证该页面不被关闭。

  3,将redis服务添加设置到Windows本地开机自启动的服务中,运行 redis-server --service-install redis.windows.conf 命令。

  PHP安装Redis扩展

  首先查看一下我们php环境和版本,根据版本去下载合适的php_igbinary.dll和php_redis.dll扩展文件。下载地址是http://pecl.php.net/package/redis (php的扩展库官网)

  下载好后将php_igbinary.dll和php_redis.dll文件复制到php的扩展文件目录ext中,之后修改php.ini配置文件开启redis扩展。添加下面两行内容

    extension=php_igbinary.dll
    extension=php_redis.dll

  设置好后重启Apache服务,查看phpinfo()是否已经有了redis扩展。

  测试

    //echo phpinfo();
    $redis = new Redis();
    $redis->connect('127.0.0.1',6379);
    $redis->set('test','Redis扩展添加成功');
    echo $redis->get('test');

猜你喜欢

转载自www.cnblogs.com/sustphp/p/11908156.html