[TOC]
Redis服务应用广泛,支持kv存储原子级别操作,简直是高效Web开发一根救命稻草,这个文档会作为一个健忘症的备忘录来记录redis的日常操作。
Redis服务基本安装
-
系统约定/usr/local/src为用户软件源码存放目录。
-
下载并安装
wget http://download.redis.io/releases/redis-2.8.9.tar.gz tar xzf redis-2.8.9.tar.gz cd redis-2.8.9 make
-
一般到/etc/sysctl.conf里添加vm.overcommit_memory=1,然后reboot,这样会允许分配所有内存。
-
在redis.conf中修改下列几个:
daemonize yes #转为守护进程 maxmemory 256000000 #内存限制
-
可以把src下面的redis-*的文件都复制到bin下。
-
启动
redis-server redis-conf
-
客户端调用
redis-cli
Redis的PHP客户端
目前比较常用的是Predis和phpredis,习惯上使用phpredis,使用C语言实现的PHP模块。
1. wget https://github.com/nicolasff/phpredis/archive/master.zip
2. unzip & cd 目录
- phpize ./configure [–enable-redis-igbinary] #是否使用igbinary library序列化数据 make && make install
- 修改php.ini,添加如下内容extension=redis.so
Redis数据结构
Redis存在几个基本的数据结构,string,hash,list,set,sortset。
一般来说string用于保存简单kv键值。
hash支持一个hash集中多组键值对。
list支持队列操作,而且支持BLPOP之类阻塞list,可以依此实现驻守进程后台等待和操作队列等,可以看我以前写的这个栗子。
set集合,支持添加多个不重复值到同一个key中,并且可以方便求并交集。
sortset有序集合,在set基础上,每个key中的每个值都有一个对应的分数,可用于排序,能方便应用于整站统计排名,而且能应用并交集。
Redis文档
Redis命令(也还不错,不如前面一个直观,都是中文的。文档中还包括事务,订阅等)