1.认识redisredis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 2.redis的安装 因为redis和redis-php的yum源在官方的源里不存在,所以要安装第三方yum源: # wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装 rpm -ivh epel-release-6-8.noarch.rpm 准备工作做好了,就开始正式安装 yum install redis yum innstall php-redis 安装过程中会询问几次,输入要y即可。 安装完成之后,重启apache服务器 service httpd restart 是否安装成功,需要来验证一下: redis-cli 进入redis的命令行说明安装成功。 3.操作redis的常用php命令 ========================================================= 构造方法 --------------------------------------------------------- $redis=new Redis(); ========================================================= ========================================================= 连接 --------------------------------------------------------- $redis->connect(host,port); host--主机名 String port--端口 (6379) int ========================================================= ========================================================= 设置key和value的值 --------------------------------------------------------- $redis->set(key,value); $redis->setnx(key,value); ========================================================= ========================================================= 获取有关指定键的值 --------------------------------------------------------- $res=$redis->get(key); echo $res; ========================================================= ========================================================= 删除指定的键 --------------------------------------------------------- $redis->delete(key); ========================================================= ========================================================= 验证指定的键是否存在 --------------------------------------------------------- $res=$redis->exists('test'); 返回值: true--存在 false--不存在 ========================================================= ========================================================= 值中的数字递增 --------------------------------------------------------- $redis->set('test','123'); $redis->incr('test'); echo $redis->get('test'); // 124 ========================================================= ========================================================= 值中的数字递减 --------------------------------------------------------- $redis->set('test','123'); $redis->decr('test'); echo $redis->get('test'); // 122 ========================================================= ========================================================= 取得所有指定键的值 --------------------------------------------------------- $redis->set('test1',"1"); $redis->set('test2',"2"); $result = $redis->getMultiple(array('test1','test2')); 当test1或者test2有存在的情况则返回为false ========================================================= ========================================================= 在列表中添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。 --------------------------------------------------------- $redis->lpush("test","111");//从列表头部添加 $redis->rpush("test","111");//在列表尾部添加 ========================================================= ========================================================= 从列表中取出元素,取出后列表中就不存在了 --------------------------------------------------------- $redis->lpop("test")//从头部取出 $redis->rpop("test")//从尾部取出 ========================================================= ========================================================= 返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。 --------------------------------------------------------- $redis->lsize("test"); ========================================================= ========================================================= 返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。 --------------------------------------------------------- $redis->lget("test",3); ========================================================= ========================================================= 为列表指定的索引赋新的值,若不存在该索引返回false. --------------------------------------------------------- $redis->lset("test",1,"333") 把key为test的list中下标为1的数设置成333 ========================================================= ========================================================= 返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二… --------------------------------------------------------- $redis->lpush("test","111"); $redis->lpush("test","222"); print_r($redis->lgetrange("test",0,-1)); //结果:Array ( [0] => 222 [1] => 111 ) ========================================================= ========================================================= 从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。 --------------------------------------------------------- $redis->lpush('test','a'); $redis->lpush('test','b'); $redis->lpush('test','c'); $redis->rpush('test','a'); print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a ) var_dump($redis->lremove('test','a',2)); //结果:int(2) print_r($redis->lgetrange('test', 0, -1)); //结果:Array ( [0] => c [1] => b ) =========================================================第一次写博客,写的不好。记录一下工作中学到的知识和碰到的问题。