1、redis与phpredis安装及使用Redis与phpredis的安装一、 准备条件虚拟机、能上网二、 安装redis1、下载安装wget tar -zxf redis-2.2.13.tar.gzcd redis-2.2.13makesudo make install这时Redis 的可执行文件被放到了/usr/local/bin2、下载配置文件和init启动脚本:wget wget sudo mv redis-server /etc/init.d/redis-serversudo chmod +x /etc/init.d/redis-serversudo mv redis.conf /et
2、c/redis.conf3、初始化用户和日志路径第一次启动Redis前,建议为Redis单独建立一个用户,并新建data和日志文件夹sudo useradd redissudo mkdir -p /var/lib/redissudo mkdir -p /var/log/redissudo chown redis.redis /var/lib/redissudo chown redis.redis /var/log/redis4、设置开机自动启动,关机自动关闭sudo update-rc.d redis-server defaults5、启动Redis:sudo /etc/init.d/redi
3、s-server start6、启动client客户端连接:$ redis-cliredis set foo barOKredis get foobar三、 安装phpredis下载phpredissudo apt-get install git-coregit clone cd phpredis/usr/bin/phpize 使用phpize工具./configure -with-php-config=/usr/bin/php-configmakesudo make install接下来在php.ini中添加extension=redis.so四、 常见问题:make命令找不到-sudo a
4、pt-get build-dep gcc五、 常用命令:Redis:_construct 描述: 创建一个Redis客户端 范例: $redis = new Redis(); connect, open 描述: 实例连接到一个Redis. 参数:host: string port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE 范例: $redis-connect(127.0.0.1, 6379); get 描述: 获取有关指定键的值 参数:key 返回值:string或BOLL 如果键不存在,则返回FALSE。否则,与此相关的关键值返回。 范例: $redis-get(
5、key); set 描述: 设置关键值参数 参数:Key Value 返回值:BOOL 范例: $redis-set(key, value) setnx 描述: 如果在数据库中不存在该键,设置关键值参数 参数:key value 返回值:BOOL 范例: $this-redis-setnx(key, value); delete 描述: 删除指定的键 参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 keyN 返回值:删除的项数 范例: $redis-set(key1, val1); $redis-set(key2, val2); $redis-set(key3
6、, val3); $redis-set(key4, val4); $redis-delete(key1, key2); $redis-delete(array(key3, key4); exists 描述:验证指定的键是否存在 参数key 返回值:Bool 范例: $this-set(key, value); $this-exists(key); $this-exists(NonExistingKey); incr 描述: 数字递增存储键值键.如果第二个参数被填满,它将被用来作为整数值递增 参数:key value:将被添加到键的值 返回值:INT the new value 范例: $red
7、is-incr(key1); $redis-incr(key1); $redis-incr(key1); $redis-incr(key1); decr 描述:数字递减存储键值。如果第二个参数被填满,它将被用来作为整数值递减 参数:key value:将被添加到键的值 返回值:INT the new value 范例: $redis-decr(key1); $redis-decr(key1); $redis-decr(key1); getMultiple 描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假 参数:其中包含键值的列表数组 返回值:返回包含所有键的值的数组 范例
8、: $redis-set(key1, value1); $redis-set(key2, value2); $redis-set(key3, value3); $redis-getMultiple(array(key1, key2, key3); rPush 描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。 参数:key,value 返回值:LONG The new length of the list in case of success, FALSE in case of Failure. 范例: $redis-delete(key
9、1); $redis-lPush(key1, C); / returns 1 $redis-lPush(key1, B); / returns 2 $redis-lPush(key1, A); / returns 3 lPop 描述:返回和移除列表的最后一个元素 参数:key 返回值:STRING if command executed successfully BOOL FALSE in case of failure (empty list) 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $
10、redis-lPop(key1); rPop 描述:返回和移除列表的第一个元素 参数:key 返回值:STRING if command executed successfully BOOL FALSE in case of failure (empty list) 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $redis-rPop(key1); lSize 描述:返回的列表的大小。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。 参数:Key 返回值: LONG
11、The size of the list identified by Key exists. BOOL FALSE if the data type identified by Key is not list 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $redis-lSize(key1); $redis-rPop(key1); $redis-lSize(key1); lGet 描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个 -1最后一个元素,-2的倒数第二错误的索引或键不指
12、向列表则返回FALSE。 参数:key index 返回值: String the element at this index Bool FALSE if the key identifies a non-string data type, or no value corresponds to this index in the list Key. 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $redis-lGet(key1, 0); $redis-lGet(key1, -1); $redis
13、-lGet(key1, 10); lSet 描述:为列表指定的索引赋新的值,若不存在该索引返回false. 参数:key index value 返回值:BOOL TRUE if the new value is setted. FALSE if the index is out of range, or data type identified by key is not a list. 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $redis-lGet(key1, 0); $redis-l
14、Set(key1, 0, X); $redis-lGet(key1, 0); lGetRange 描述: 返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素 -1最后一个元素,-2的倒数第二 参数:key start end 返回值:Array containing the values in specified range. 范例: $redis-rPush(key1, A); $redis-rPush(key1, B); $redis-rPush(key1, C); $redis-lGetRange(key
15、1, 0, -1); lRemove 描述: 从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。 参数:key count value 返回值: LONG the number of elements to remove BOOL FALSE if the value identified by key is not a list. 范例: $redis-lPush(key1, A); $redis-lPush(key1, B); $redis-lPush(key1, C); $redis-lPush(key1,
16、A); $redis-lPush(key1, A); $redis-lGetRange(key1, 0, -1); $redis-lRemove(key1, A, 2); $redis-lGetRange(key1, 0, -1); sAdd 描述: 为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。 参数:key value 返回值:BOOL TRUE if value didnt exist and was added successfully, FALSE if the value is already present. 范例: $redis-sAdd(key1 ,
17、 set1); $redis-sAdd(key1 , set2); $redis-sAdd(key1 , set2); sRemove 描述:删除Key中指定的value值 参数:key member 返回值:BOOL TRUE if the member was present in the set, FALSE if it didnt. 范例: $redis-sAdd(key1 , set1); $redis-sAdd(key1 , set2); $redis-sAdd(key1 , set3); $redis-sRemove(key1, set2); sMove 描述:将Key1中的va
18、lue移动到Key2中 参数:srcKey dstKey member 返回值:BOOL If the operation is successful, return TRUE. If the srcKey and/or dstKey didnt exist, and/or the member didnt exist in srcKey, FALSE is returned. 范例: $redis-sAdd(key1 , set11); $redis-sAdd(key1 , set12); $redis-sAdd(key1 , set13); $redis-sAdd(key2 , set21
19、); $redis-sAdd(key2 , set22); $redis-sMove(key1, key2, set13); sContains 描述: 检查集合中是否存在指定的值。 参数:key value 返回值:BOOL TRUE if value is a member of the set at key key, FALSE otherwise. 范例: $redis-sAdd(key1 , set1); $redis-sAdd(key1 , set2); $redis-sAdd(key1 , set3); $redis-sContains(key1, set1); $redis-s
20、Contains(key1, setX); sSize 描述:返回集合中存储值的数量 参数:key 返回值:LONG the cardinality of the set identified by key, 0 if the set doesnt exist. 范例: $redis-sAdd(key1 , set1); $redis-sAdd(key1 , set2); $redis-sAdd(key1 , set3); $redis-sSize(key1); $redis-sSize(keyX); sPop 描述:随机移除并返回key中的一个值 参数:key 返回值:String popp
21、ed value Bool FALSE if set identified by key is empty or doesnt exist. 范例: $redis-sAdd(key1 , set1); $redis-sAdd(key1 , set2); $redis-sAdd(key1 , set3); $redis-sPop(key1); $redis-sPop(key1); sInter 描述: 返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。 参数:key1, key2, keyN: keys identifying the
22、 different sets on which we will apply the intersection. 返回值:Array, contain the result of the intersection between those keys. If the intersection beteen the different sets is empty, the return value will be empty array. 范例: $redis-sAdd(key1, val1); $redis-sAdd(key1, val2); $redis-sAdd(key1, val3);
23、$redis-sAdd(key1, val4); $redis-sAdd(key2, val3); $redis-sAdd(key2, val4); $redis-sAdd(key3, val3); $redis-sAdd(key3, val4); var_dump($redis-sInter(key1, key2, key3); 输出: array(2) 0=string(4) “val4 1=string(4) “val3 sInterStore 描述: 执行sInter命令并把结果储存到新建的变量中。 参数: Key: dstkey, the key to store the diff
24、into. Keys: key1, key2 keyN. key1.keyN are intersected as in sInter. 返回值:INTEGER: The cardinality of the resulting set, or FALSE in case of a missing key. 范例: $redis-sAdd(key1, val1); $redis-sAdd(key1, val2); $redis-sAdd(key1, val3); $redis-sAdd(key1, val4); $redis-sAdd(key2, val3); $redis-sAdd(key2
25、, val4); $redis-sAdd(key3, val3); $redis-sAdd(key3, val4); var_dump($redis-sInterStore(output, key1, key2, key3); var_dump($redis-sMembers(output); 输出: int(2) array(2) 0= string(4) “val4 1= string(4) “val3 sUnion 描述:返回一个所有指定键的并集 参数:Keys: key1, key2, , keyN: Any number of keys corresponding to sets i
26、n redis. 返回值:Array of strings: The union of all these sets. 范例: $redis-delete(s0, s1, s2); $redis-sAdd(s0, 1); $redis-sAdd(s0, 2); $redis-sAdd(s1, 3); $redis-sAdd(s1, 1); $redis-sAdd(s2, 3); $redis-sAdd(s2, 4); var_dump($redis-sUnion(s0, s1, s2); 输出: array(4) 0= string(1) “3 1= string(1) “4 2= strin
27、g(1) “1 3= string(1) “2 sUnionStore 描述: 执行sUnion命令并把结果储存到新建的变量中。 参数: Key: dstkey, the key to store the diff into. Keys: key1, key2, , keyN: Any number of keys corresponding to sets in redis. 返回值:INTEGER: The cardinality of the resulting set, or FALSE in case of a missing key. 范例: $redis-delete(s0, s1, s2); $redis-sAdd(s0, 1); $redis-sAdd(s0, 2); $redis-sAdd(s1, 3); $redis-sAdd(s1, 1); $redis-sAdd(s2, 3); $redis-sAdd(s2, 4); var_dump($redis-sUnionStore(dst, s0, s1, s2); var_dump($redis-sMembers(dst); 输出: int(4) array(4) 0= string(1) “3 1= string(1) “4 2= string(1) “1 3= string(1) “2 sDi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1