赞
踩
keys *
exists key
type key
del key
rename key newkey
renamenx key newkey 只有newkey不存在时才会被覆盖
expire key 10 单位秒,过期后会自动删除
expireat key 10 单位秒,10秒后过期
pexpire key 1000 单位毫秒,超过过期时间后会自动删除
pexpireat key 1000 单位毫秒,1000毫秒后过期
ttl key
randomkey
(1)move key db (不建议再生产环境中使用)把指定的键从源数据库移动到目标数据库
(2)dump+restore
dump key
Restore key ttl value
Dump+restore可以实现在不同的redis实例之间进行数据迁移的功能,整个迁移的过程分为两步;
1)在源redis上,dump命令会将键值序列化,格式采用的是RDB格式
2)在目标redis上,restore命令将上面序列化的值进行复原,其中ttl参数代表过期时间,ttl=0代表没有过期时间
=======例=======
源redis
127.0.0.1:6379> get redis
"world"
127.0.0.1:6379> dump redis
"\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8"
目标redis
127.0.0.1:6379> get redis
(nil)
127.0.0.1:6379> restore redis 0 "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8"
OK
127.0.0.1:6379> get redis
"world"
(3)migrate
migrate实际上是把dump、restore、del 3个命令进行组合,从而简化了操作步骤
源redis中执行
127.0.0.1:6379> migrate xxx.xxx.xxx.xxx 6379 flower 0 1000 replace
(将键flower迁移至目标xxx.xxx.xxx.xxx:6379的库0中,超时时间为1000毫秒,replace表示目标库如果存在键flower,则覆盖)
(1)全量遍历键
keys pattern
(2)渐进式遍历
scan 可以有效的解决keys命令存在的阻塞问题,scan每次的额复杂度是O(1)
select 3
dbsize
flushdb
flushall
set key value [ex] [px] [nx|xx]
ex为键值设置秒级过期时间
px为键值设置毫秒级过期时间
nx键必须不存在,才可以设置成功,用于添加
xx与nx相反,键必须存在,才可以设置成功,用于更新
setnx、setex 与上面的nx、ex作用相同
get key
mset key value [key value ......]
mset a 1 b 2 c 3 d 4
mget key [key ......]
incr key
decr key /inceby key increment /decrby key increment
返回结果分为3中情况:
值不是整数,返回错误;
值是整数,返回自增后的结果;
键不存在,按照值为0自增,返回结果为1。
append key value 可以向字符串尾部追加值
strlen key 每个汉字占用3个字字节
getset key value
setrange key offeset value
127.0.0.1:6379> get liming
"class4"
127.0.0.1:6379> setrange liming 0 m
(integer) 6
127.0.0.1:6379> get liming
"mlass4"
getrange key start end
start和end分别为开始和结束的偏移量,偏移量从0开始
hset key field value
hset user:1 name tom
hget key field
127.0.0.1:6379> hset user:1 name Tom
(integer) 1
127.0.0.1:6379> hget user:1 name
"Tom"
127.0.0.1:6379> hget user:1 age
(nil)
hdel key field [field ......]
会删除一个或多个field,返回结果为成功删除fiel的个数
hlen key
Hmget key field [field ......]
Hmset key field value [field value]
hexists key field
hkeys key
127.0.0.1:6379> hkeys user:1
1) "name"
2) "age"
3) "grand"
4) "city"
hvals key
127.0.0.1:6379> hvals user:1
1) "Tom"
2) "20"
3) "3"
4) "beijing"
hgetall key
hstrlen key field
rpush key value [value......]
lpush key value [value......]
linsert key before|after pivot value
linsert命令会从列表中找到等于pivot的元素,在其前或者后插入一个新的元素value
127.0.0.1:6379> rpush mylist a b c d e f b a
(integer) 8
127.0.0.1:6379> linsert mylist after f g
(integer) 9
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "g"
8) "b"
9) "a"
lrange key start end 索引下标从左到右分别是0到N-1,从右到左分别是-1到-N;end选项包含了自身
lrange key 0 -1 可以从左到右获取列表的所有元素
lrange mylist 1 3 获取列表中第2个到第4个元素
lindex key index
llen key
rpop key
lpop key
lrem key count value
Lrem命令会从列表中找到=value的元素进行删除,根据count的不同分为3种情况:
1)Count>0,从左到有,删除最多count个元素
2)Count<0,从右到左,删除最多count绝对值个元素
3)Count=0,删除所有
列表listaaa为a a a a java php b a b
127.0.0.1:6379> lrem listaaa 5 a
(integer) 5
127.0.0.1:6379> lrange listaaa 0 -1
1) "java"
2) "php"
3) "b"
4) "b"
127.0.0.1:6379> lrem listaaa 3 php
(integer) 1
127.0.0.1:6379> lrange listaaa 0 -1
1) "java"
2) "b"
3) "b"
lset key index newValue 修改指定索引下标的元素
Eg:lset listaaa 1 python
blpop key [key ...] timeout
brpop key [key ...] timeout
blpop和brpop是lpop、rpop的阻塞版本,除了弹出方式不同,使用方法基本相同,timeout阻塞时间
brpop list:test 3 3秒后返回
brpop list:test 0 一直处于阻塞中
brpop mylist 0 立刻返回
127.0.0.1:6379> brpop mylist 0
1) "mylist"
2) "a"
sadd key element [element .....] 返回结果为添加成功的元素个数
srem key element [element .....] 返回结果为删除成功的元素个数
Scard key scard的时间复杂度为O(1),直接用redis内部的变量
Sismember key element 在集合中则返回1,否则返回0
Srandmember key [count] count可不写,默认为1
Spop key [count] 3.2版本开始支持[count]
Smembers key 它和lrange、hgetall都属于比较重的命令,有时候可以使用sscan来完成
sinter key [ key ......]
sunion key [key ......]
sdiff key [key ......] 第一个key里面有的,第二个key里面没有的
sinterstore destination key [ key ......]
sunionstore destination key [ key ......]
sdiffstore destination key [ key ......]
例如:sinterstore user:1_2:inter user:1 user:2 user:1_2:incr也是集合类型
zadd key score member[score member .....] 返回结果为添加成功的元素个数
zcard key scard的时间复杂度为O(1),直接用redis内部的变量
zsore key member
zrank key member
zrem key member [member .......]
zincrby key increment member
zrange key start end [withscores] 从低分到高分
zrevrange key start end [withscores] 从高分到低分
zrange key min max [withscores] [limit offset count ] 按照分数从低分到高分
zrevrange key max min [withscores] [limit offset count ] 按照分数从高分到低分
zcount key min max
zremrangebyrank key start end
zremrangebystore key min max
publish channel message
publish channel:sports 'I want to go eatting'
subscribe channel [channel .....]
subscribe channel:sports
unsubscribe channel [channel .....]
psubscribe pattern [pattern ......]
unpsubscribe pattern [pattern ......]
(1)查看活跃的频道
pubsub channels
127.0.0.1:6379> pubsub channels
1) "channel:sports"
2) "__sentinel__:hello"
(2)查看频道订阅数
pubsub numsub [channel ......]
pubsub numsub channel:sports
(3)查看模式订阅数
pubsub numpat
discard
exec
multi
unwatch
watch key [key ...]
auth password
echo message
ping
quit
select index
bgsave
client setname/client getname
client kill ip:port
client list
config get parameter
config set parameter value
config resetstat
info [section]
lastsave
monitor
save
slaveof host port
slowlog subcommand [argument]
觉得有用的点个收藏吧,需要的时候还能找找命令
部分内容摘自https://segmentfault.com/a/1190000010999677
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。