整理Redis常⽤操作命令⼤全
⼀、全局命令
1、查询键
keys * 查询所有的键,会遍历所有的键值,复杂度O(n)
2、键总数
dbsize 查询键总数,直接获取redis内置的键总数变量,复杂度O(1)
3、检查键是否存在
exists key 存在返回1,不存在返回0
4、删除键O(k)
del key [] 返回结果为成功删除键的个数
5、键过期
redis五种数据结构expire key seconds 当超过过期时间,会⾃动删除,key在seconds秒后过期
expireat key timestamp 键在秒级时间戳timestamp后过期
pexpire key milliseconds 当超过过期时间,会⾃动删除,key在milliseconds毫秒后过期
pexpireat key milliseconds-timestamp key在豪秒级时间戳timestamp后过期
ttl 命令可以查看键hello的剩余过期时间,单位:秒(>0剩余过期时间;-1没设置过期时间;-2键不存在)
pttl是毫秒
192.168.225.129:6379> expire k2 100
(integer) 1
192.168.225.129:6379> ttl k2
(integer) 91
192.168.225.129:6379> ttl ma
(integer) -1
192.168.225.129:6379>
6、键的数据结构类型
type key 如果键hello是字符串类型,则返回string;如果键不存在,则返回none
7、键重命名
rename key newkey
renamenx key newkey 只有newkey不存在时才会被覆盖
8、随机返回⼀个键
randomkey
9、迁移键
(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
192.168.225.129:6379> get redis
"world"
192.168.225.129:6379> dump redis
"\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8"
⽬标redis
192.168.225.128:6379> get redis
(nil)
192.168.225.128:6379> restore redis 0 "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8"
OK
192.168.225.128:6379> get redis
"world"
(3)migrate
migrate实际上是吧dump、restore、del 3个命令进⾏组合,从⽽简化了操作步骤。
Migrate host port key [ key ......] destination-db timeout [replace]
源redis中执⾏
192.168.225.129:6379> migrate 192.168.225.128 6379 flower 0 1000 replace
(将键flower迁移⾄⽬标192.168.225.128:6379的库0中,超时时间为1000毫秒,replace表⽰⽬标库如果存在键flower,则覆盖)10、遍历键
(1)全量遍历键
keys pattern
例如:keys h , keys [r,l]edis ,keys 等等
(2)渐进式遍历
scan 它可以有效的解决keys命令存在的阻塞问题,scan每次的额复杂度是O(1)
数据库管理
1、切换数据库
select dbIndex
默认16个数据库:0-15,进⼊redis后默认是0库。不建议使⽤多个数据库
2、flushdb / flushall
⽤于清除数据库,flushdb只清除当前数据库,flushall清除所有数据库。
⼆、针对key的操作
1、设置值 O(1)
set key value [ex] [px] [nx|xx]
ex为键值设置秒级过期时间
px为键值设置毫秒级过期时间
nx键必须不存在,才可以设置成功,⽤于添加
xx与nx相反,键必须存在,才可以设置成功,⽤于更新
setnx、setex 与上⾯的nx、ex作⽤相同
2、获取值O(1)
get key 不存在则返回nil
3、批量设置值O(k)
mset key value [key value ......]
mset a 1 b 2 c 3 d 4
4、批量获取值O(k),k是键的个数
mget key [key ......]
5、计数O(1)
incr key
decr key /inceby key increment /decrby key increment
返回结果分为3中情况:
值不是整数,返回错误;
值是整数,返回⾃增后的结果;
键不存在,按照值为0⾃增,返回结果为1。
6、追加值O(1)
append key value 可以向字符串尾部追加值
7、字符串长度O(1)
strlen key
每个汉字占⽤3个字字节
8、设置并返回原值O(1)
getset key value
9、设置指定位置的字符O(n),n是字符串长度
setrange key offeset value
192.168.225.129:6379> get liming
"class4"
192.168.225.129:6379> setrange liming 0 m
(integer) 6
192.168.225.129:6379> get liming
"mlass4"
192.168.225.129:6379>
10、获取部分字符串
getrange key start end start和end分别为开始和结束的偏移量,偏移量从0开始
三、 Hash操作
1、设置值
hset key field value
还提供了hsetnx命令
Eg:hset user:1 name tom
2、获取值
hget key field
192.168.225.129:6379> hset user:1 name Tom
(integer) 1
192.168.225.129:6379> hget user:1 name
"Tom"
192.168.225.129:6379> hget user:1 age
(nil)
3、删除field
hdel key field [field ......] 会删除⼀个或多个field,返回结果为成功删除fiel的个数4、计算field的个数
hlen key
5、批量设置或获取field-value
Hmget key field [field ......]
Hmset key field value [field value]
6、判断field是否存在
hexists key field
7、获取所有field
hkeys key
192.168.225.129:6379> hkeys user:1
1) "name"
2) "age"
3) "grand"
4) "city"
8、获取所有value
hvals key
192.168.225.129:6379> hvals user:1
1) "Tom"
2) "20"
3) "3"
4) "beijing"
9、获取所有的field、value
hgetall key
10、hincrby hincrbyfloat 作⽤域是field
hincrby key field
hincrbyfloat key field
11、计算value字符串的长度
hstrlen key field
四、列表List操作
列表类型原来存储多个有序的字符串,可以重复
列表的4中操作类型
操作类型操作
添加rpush 、lpush、linsert
查lrange、lindex、llen
删除lpop 、rpop、 lrem、ltrim 修改lset
阻塞操作blpop、brpop
列表的4中操作类型
1、添加
(1)从右边插⼊元素
rpush key value []
(2)从左边插⼊元素
lpush key value []
(3)向某个元素前或者后插⼊元素
linsert key before|after pivot value
linsert命令会从列表中到等于pivot的元素,在其前或者后插⼊⼀个新的元素value
192.168.225.129:6379> rpush mylist a b c d e f b a
(integer) 8
192.168.225.129:6379> linsert mylist after f g
(integer) 9
192.168.225.129:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "g"
8) "b"
9) "a"
2、查
(1)获取指定范围内的元素列表
lrange key start end 索引下标从左到右分别是0到N-1,从右到左分别是-1到-N;end选项包含了⾃⾝lrange key 0 -1 可以从左到右获取列表的所有元素
lrange mylist 1 3 获取列表中第2个到第4个元素
(2)获取列表指定下标的元素
lindex key index
(3)获取列表长度
llen key
3、删除
(1)从列表右侧弹出元素
rpop key
(2)从列表左侧弹出元素
lpop key
(3)删除指定元素
lrem key count value
Lrem命令会从列表中到=value的元素进⾏删除,根据count的不同分为3中情况
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论