一 字符串
set key value
当 SET
命令对一个带有生存时间(TTL)的键进行设置之后, 该键原有的 TTL 将被清除。
设置过期时间
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$aa=$redis->set('aa','aa',60);
mset key1 value3 key2 value2........ 一次性设置多个 php写法$aa=$redis->mset(['aa'=>1,'bb'=>1,'cc'=>1]);
mget key1 key2 .... 一次性获取多个 php 写法$aa=$redis->mget(['aa','bb','cc']);
strlen key 获取长度
append key value2 字符串追加到后面
getrange key start end 截取字符串
incr key 数字加1
decr key 减1
incrby key number 数字加numer 只能是整数 正整数为加法运算 负整数减法运算
decr key number 数字减number 只能是整数 正整数为减法运算 负整数加法运算
increment key number 数字增加number 可以是浮点或正整数
二哈希
hset field key value
hmset field key1 value1 key2 value2 .......... php写法$aa=$redis->hmset('cheng',['name'=>'chengfengchi','aa'=>1]);
hsetnx field key value 如果field的key存在则不赋值
hget field key 获取field的key的值
hmget field key key2..... php写法 $aa=$redis->hmset('cheng',['name'=>'chengfengchi','aa'=>1]);
hexists field key 判断是否存在
hdel field key1 key2 key3 ... 删除多个
hlen field 获取多少个元素
hstrlen field key1 返回key1对应的值的长度
hincrby field key number 数字加number
hincrbyfloat field key number 数字加浮点number
hkeys field 获取这个字段所有的key
hvals field 获取这个字段的所有value
hgetall field 获取所有的key和value php获取得到key=>value的一个数组
三列表
lpush key value1 value2.... 从左到左依次插入数据
lpushx key value1 value2.. 如果列表存在则从左到右一次插入数据
rpush key value1 value2.... 从右到左依次插入数据
rpushx key value1 value2.. 如果列表存在则从右到左一次插入数据
lpop key 删除最左边的值
rpop key 删除最右边的值
rpoplpush key key2 将key的最右面的元素插入key2元素内
$redis->rpush('key1',1,2,3,4,5);
$redis->rpush('key2',1,2,3,4,5);
$redis->rpoplpush('key1','key2');
$key1=$redis->lrange('key1',0,-1);
$key2=$redis->lrange('key2',0,-1);
结果
array(4) { [0] => string(1) "1" [1] => string(1) "2" [2] => string(1) "3" [3] => string(1) "4" }
array(6) { [0] => string(1) "5" [1] => string(1) "1" [2] => string(1) "2" [3] => string(1) "3" [4] => string(1) "4" [5] => string(1) "5" }
lrem key value number 删除列表key值为values删除number个后就停止删除
$redis->rpush('key1',1,2,3,4,5,3,4,5,6);
$redis->lrem('key1',3,1);
llen key 获取元素的个数
lindex key index 获取该列表第index个的元素 从0开始
lset key index value 把列表key的index个的值改成value
lrange key start end 获取key从start 到end个元素 0,-1 为所有的
ltrim key start end 举个例子,执行命令 LTRIM list 0 2
,从第0个删除2个元素
四列表
sadd key value value2
sismember key value 判断value是否存在
spop key 删除key的随机一个
srandmember key [number] 随机获取(不带参数随机一个带参数获取代表获取几个)
srem key value 删除key的value
smove key key2 key_value 把key里的key_value移除到key2
scard key 获取总数
smembers key 获取集合所有值
sinter key1 key2 两个集合的交集
sunion key1 key2 两个集合的并集合
sdiff key1 key2 两个集合的差集合
五有序集合
zadd key paixu value zadd key 1 chengfengchi
zscore key value 返回该value值的key
zincrby key number value key的value排序值添加number
zcard key 返回有序集 key
的基数第几个不是排序值
zcount key start end 返回排序在start end在之间的个数
zrange key start end [WITHSCORES]返回对应的值 带参数包括排序值 从小到大
zrevrange key start end [WITHSCORES]返回对应的值 带参数包括排序值 从大到小
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回范围内的值从小到大 limit offset(跳过多少个) count(读取多少个)
zrevrangebyscore key min max [WITHSCORES] [LIMIT offset count] 返回范围内的值从大到小 limit offset(跳过多少个) count(读取多少个)
zrank key value 返回value在key内的基数 从小到大排序
zrevrank key value 返回value在key内的基数 从大到小排序
zrem key value1 value2 删除key内的值
ZREMRANGEBYRANK key start stop 移除rank排序范围内的值(基数)
REMRANGEBYSCORE key min max 移除paixu在min max范围内的值
1)、【 set key value 】 存入一个key和值。如:set myname reson
2)、【 get key 】 读取一个key的值。
3)、【 del key 】 删除一个key。
4)、【 del key1 key2 ... keyN 】 删除多个key。如:del myname1 myname2
5)、【 exists key 】 判断一个key是否存在。
6)、【 type key 】 查看key的类型。
7)、【 rename key keyNew 】 重命名key名。如:rename myname myname2
8)、【 dbsize 】 查看当前库中的key的条数。
9)、【 expire key time 】 指定key的过期时间,单位为秒。如:expire myname 9(设置9秒后过期)
10)、【 ttl key 】 查看redis有多长时间过期,单位为秒。
11)、【 keys * 】 列出当前库中所有的key名。
12)、【 keys a* 】 列出当前库中所有以字符串“a"开头的key。
13)、【 select db-index 】 选择一个数据库,如选择第一个数据库:select 0;选择第二个 select 1;默认有16个数据库,这个值可以在redis.conf中配置。
14)、【 flushdb 】 清掉当前库中所有的key(生产环境下需谨慎操作)。
15)、【 flushall 】 清掉所有库中全部的key(生产环境下需谨慎操作)。
16)、【 mset key1 value1 key2 value2 ... keyN valueN 】 一次性存入多个key和值。
17)、【 mget key1 key2 ... keyN 】 一次性读取多个key。
18)、【 incr key 】 可以对key类型+1的操作(相当于编程语言里面的++),只能操作number型,操作字符串会报错。可对新值进行操作。
19)、【 decr key 】 可以对key类型-1的操作(相当于编程语言里面的--),只能操作number型,操作字符串会报错。
20)、【 incrby key num 】 同incr,对key的值加num,比如 incrby aa 10,对aa+10。
21)、【 decrby key num 】 同上,对key的值减num。
22)、【 append key value 】 对指定key的字符串进行追加,如果key为整形,会被转为字符串。如aa的值为9,执行append aa 10后,会变成910。
23)、【 substr key start end 】 对key进行截取start到end个字符。如aa的值为:abcdef,执行substr aa 2 3后,返回“cd”。
2、redis链表类型(list)命令
24)、【 lpush key value 】 往队列头部插入一个元素
25)、【 rpush key value 】 从尾部插入一个元素
26)、【 lpop key 】 从队列头部删掉一个元素
27)、【 rpop key 】 从队列尾部删掉一个元素,并返回被删除元素的值
28)、【 llen 】 返回队列的长度,即里面有多少个元素。不存在key返回0,不为队列类型的key会返回报错。
29)、【 lrange key start end 】 返回队列从start到end之间的元素信息。
30)、【 ltrim key start end 】 截取一个队列,只保留指定区间内的元素。
3、redis无序集合set类型命令
31)、【 sadd key vaule 】 往集合中插入一个元素,如果value值已存在集合中,则返回0,不会被重复插入。
32)、【 sinter key1 key2 ... keyN 】 取出n个key之间的交集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sinter key1 key2返回d,e。
33)、【 sunion key1 key2 ... keyN 】 取出n个key之间的并集。比如 key1里面有值a,b,c,d,e,key2里面有d,e,f,sunion key1 key2返回a,b,c,d,e,f。
34)、【 sdiff key1 key2 】 取出n个key之间的差集。比如 key1里面有值a,b,c,d,e,key2
里面有d,e,f,sdiff key1 key2返回a,b,c;反过来sdiff key2 key1返回f。
35)、【 smembers key 】 返回key集合中所有的元素,结果是无序的。
36)、【 sismember key value 】 查看value这个值是否在key集合中。存在返回1,不存在返回0。
37)、【 scard key 】 返回集合中有多少个元素。
38)、【 smove key1 key2 value 】 把value从key1中移到key2中去。
39)、【 srem key value1 value2 ... valueN 】 从key集合中删掉某些元素。
4、redis有序集合sorted set命令
40)、【 zadd key v k 】 往key中添加一个元素,k为键,v为值。如:zadd artHits 99 12表示id为12的文章点击量为99次。
41)、【 zrange key start end 】 根据v的值由小到大进行排序来获得start到end之间的元素。
注:0表示第一个元素,-1表示最后一个元素,-2表示倒数第二个元素,以此类推,如果要获取第一个到倒数第三个之间的元素,命令为:zrange key 0 -3。
42)、【 zrevrange key start end 】 同上,根据v的值由大到小进行排序来获得start到end之间的元素。可以轻松取出点击量最高的前n篇文章。
43)、【 zremrangebyrank key start end 】 删除集合中的元素。排序的方式为按照v由小到大的顺序,如果要删除key集合中的第一个值,则运行 zremrangebyrank artHits 0 0;删除前3个值:zremrangebyrank artHits 0 2。
44)、【 zcard 】 返回key集合中元素的个数。
45)、【 zrank key k 】 返回值k在集合key中排第几位,是按照v由小到大的顺序。排第一名返回0,第二返回1,以此类推。
46)、【 zrevrank key k 】 同上,不同的是,按照v由大到小的顺序。可以轻松取出点击量最高的文章。
47)、【 zscore key k 】 取出集合key中键为k对应的值v。
48)、【 zrem key k 】 删除集合中指定元素。
49)、【 zincrby key num k 】 给集合key中的元素k加上num,值针对整型。比如 zincrby artHits 3 12,给id为12的文章加上3个点击量。此时zscore artHits 12的结果是99+3为102。
5、redis哈希hash类型命令
50)、【 hset key field value 】 设置hash field为指定值,如果key不存在,则先创建。
51)、【 hmset key field1 value1 ... fieldN valueN 】 同时设置多个值。
52)、【 hget key field 】 获取指定的hash field
53)、【 hmget key field1 field1 ... fieldN 】 获取指定的多个hash field
54)、【 hincrby key field num 】 将指定的hash field加上指定的值。
55)、【 hexists key field 】 查看指定field是否存在。
56)、【 hdel key field 】 删除指定的hash field。
57)、【 hlen key 】 返回指定hash中field的数量。
58)、【 hkeys key 】 返回hash所有的field。
59)、【 hvals 】 返回hash中所有的value。
60)、【 hgetall key 】 返回hash中所有的field和value。