redis使用

通用命令

文档地址 https://redis.io/commands/copy

常用命令名解释用法返回值
■■del删除键del [键]…删除成功的个数
unlink非阻塞异步删除unlink [键]…删除成功的个数
■■exists是否存在键exists [键]…存在键的个数
■■expire设置过期时间(秒)expire 键 秒成功:1;失败:0
expireat设置到期时间(秒时间戳)expire 键 秒时间戳成功:1;失败:0
expiretime (7.0.0+)设置到期时间(秒时间戳)expire 键 秒时间戳成功:秒时间戳;失败:-1;不存在:-2
pexpire设置过期时间(毫秒)pexpire 键 毫秒成功:1;失败:0
pexpireat设置到期时间(毫秒时间戳)pexpire 键 毫秒时间戳成功:1;失败:0
pexpiretime (7.0.0+)设置到期时间(毫秒时间戳)pexpire 键 毫秒时间戳成功:毫秒时间戳;失败:-1;不存在:-2
■■ttl获取秒过期时间ttl 键过期:秒;不过期:-1;不存在:-2
pttl获取毫秒过期时间pttl 键过期:毫秒;不过期:-1;不存在:-2
■■persist持久化(移除过期时间)persist 键成功:1;失败:0
■■keys模糊查询keys 匹配模式匹配成功的数组
■■scan扫描
rename重命名rename 旧键名 新键名成功:OK(新键名已存在会被覆盖);
不存在旧键:ERR no such key
renamenx重命名(不覆盖)renamex 旧键名 新键名成功:1;已存在新键:0;
不存在旧键:ERR no such key
type类型type 键none(键不存在)/string/list
/set/zset/hash/stream
randomkey随机键randomkey存在:随机键;不存在:null
move移动键到其他库move 键 库成功:1;失败:0
copy (6.2.0+)复制键copy 原键 目的键成功:1;失败:0
dump导出序列化的值dump 键存在:序列化的值;不存在:null
restore恢复序列化的值
migrate迁移
object encoding对象编码object encoding 键存在:编码;不存在:null
object freq对象访问频率计数器object freq 键存在:计数器的值;不存在:null
object help (6.2.0+)对象帮助object help子命令列表及其描述数组
object idletime对象空闲时间(秒)object idletime 键存在:空闲时间;不存在:null
object refcount对象引用计数object refcount 键存在:引用计数;不存在:null
sort排序
sort_ro排序不改变原数据
touch更改最后访问时间touch [键]…更改成功的次数
wait阻塞

keys 模糊查询

格式:keys 匹配模式

匹配规则

  • * : 匹配0+个任意字符
  • ? : 匹配1个任意字符
  • [abc] : 匹配1个指定字符(括号内字符abc)
  • [^abc] : 不匹配1个指定字符(括号内字符abc)
  • [A-z] : 匹配1个指定字符(括号内字符A-z)
  • \ : 转义(字符*?[]^-\等)

示例

匹配模式匹配示例解释
aa只有a
a*a/ab/abc/aaa…a是第1个字符,后面任意
a?aa/ab/ac/ad…a是第1个字符,后面只能有1个字符
*a*a/ab/ba/bab/bbabb/bbaabb…包含a即可
?a?aaa/bab/cad…a的左右只能有1个字符
[abc]a/b/c只有a/b/c
[^abc]d/e/f…除了a/b/c
[A-z]a/b/c/A/B/C…A-Z和a-z
a\[*a[或a[b或a[c…匹配转义字符[
a\\\[*a\[或a\[a或a\[b…匹配转义字符\

scan 扫描

格式:scan 游标 [match 匹配模式] [count 返回条数]
放入元素:mset 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 a a b b c c d d e e f f
执行scan 0从头开始扫描,返回

1) "5"
2)  1) "6"
    2) "3"
    3) "7"
    4) "e"
    5) "9"
    6) "d"
    7) "2"
    8) "f"
    9) "5"
   10) "a"
   11) "4"

第一个返回值5是下一次的新游标值(当扫描到尾部时返回0),第二个数组是扫描到的值(默认10个值,没有到尾部时,可能会+1个,到尾部是剩余的值的个数)
执行scan 5扫描,返回

1) "0"
2) 1) "8"
   1) "c"
   2) "1"
   3) "b"
   4) "0"

执行scan 0 count 5限制扫描个数,返回

1) "14"
2) 1) "6"
   2) "3"
   3) "7"
   4) "e"
   5) "9"

执行scan 0 count 6扫描,返回

1) "1"
2) 1) "6"
   2) "3"
   3) "7"
   4) "e"
   5) "9"
   6) "d"
   7) "2"

继续放入元素:mset aa aa ab ab aba aba abc abc
执行scan 0 match a*执行匹配扫描,返回

1) "9"
2) 1) "aba"
   2) "abc"

扫描前10条,只有2条匹配的
执行scan 0 match a* coun 100执行限制、匹配扫描,返回

1) "0"
2) 1) "aba"
   2) "abc"
   3) "a"
   4) "aa"
   5) "ab"

扫描前100条,有5条匹配的


hscan/sscan/zscan扫描也与scan类似,只是多了1个key
格式:hscan/sscan/zscan 键 游标 [match 匹配模式] [count 返回条数]
放入set元素sadd s 0 1 2 3 4 5 6 7 8 9 a b c d e f
执行sscan s 0,返回

1) "5"
2)  1) "6"
    2) "7"
    3) "3"
    4) "e"
    5) "9"
    6) "d"
    7) "2"
    8) "f"
    9) "5"
   10) "a"
   11) "4"

字符串命令

文档地址 https://redis.io/commands/append

常用命令名解释用法返回值
decr数字类型递减1decr 键递减后的值(键不存在创建值0后再递减)
■■decrby数字类型递减decrby 键 减量递减后的值(键不存在创建值0后再递减)
incr数字类型递增1incr 键递增后的值(键不存在创建值0后再递增)
■■incrby数字类型递增incrby 键 增量递增后的值(键不存在创建值0后再递增)
incrbyfloat浮点类型递增incrbyfloat 键 增量递增后的值(键不存在创建值0后再递增)
■■get获取get 键存在:值;不存在:null
getset (6.2.0-set)获取并放入getset 键 值存在:值;不存在:null
getdel获取并删除getdel 键存在:值;不存在:null
getex获取并设置过期时间
mget获取多个mget [键]…存在:值数组;不存在:null
■■set放入set 键 值OK
■■setnx放入(不覆盖)setnx 键 值成功:1;失败:0
■■setex放入并设置过期时间(秒)psetex 键 秒 值OK(键名已存在会覆盖)
psetex放入并设置过期时间(毫秒)psetex 键 毫秒 值OK(键名已存在会覆盖)
mset放入多个mset [键 值]…OK(键名已存在会覆盖)
msetnx放入多个(不覆盖)msetnx [键 值]…成功:1;全部未设置(至少一个键存在):0
append追加字符串append 键 字符串追加后的字符串长度(键不存在将创建)
getrange截取字符串getrange 键 头 尾存在:截取后的值;不存在:null
setrange覆盖字符串setrange 键 偏移 值修改后字符串长度
strlen字符串长度strlen 键存在:长度;不存在:0
stralgo (6.0.0+)使用算法

set 设置值

格式:set 键 值 [EX 秒 | PX 毫秒 | EXAT 秒时间戳 | PXAT 毫秒时间戳 | KEEPTTL] [NX | XX] [GET]

选项

常用选项名解释用法
■■EX设置过期时间(秒)EX 秒
PX设置过期时间(毫秒)PX 毫秒
EXAT (6.2.0+)设置到期时间(秒时间戳)EXAT 秒时间戳
PXAT (6.2.0+)设置到期时间(毫秒时间戳)PXAT 毫秒时间戳
KEEPTTL (6.0.0+)保留原有过期时间KEEPTTL
NX不存在键才设置NX
XX存在键才设置XX
GET (6.2.0+)获取旧的值GET
NX GET (7.0.0+)不存在键才设置并获取旧的值NX GET

返回值

返回值情形
OK未指定GET且执行成功
null指定NX或XX但执行失败
null指定GET但键不存在
指定GET且键存在

哈希命令

文档地址 https://redis.io/commands/hdel

常用命令名解释用法返回值
■■hdel删除项hdel 键 [项]…删除成功的个数
■■hexists是否存在项hexists 键 项存在:1;不存在:0
■■hget获取项的值hget 键 项存在:值;不存在:null
hmget获取多个项的值hmget 键 [项]…值数组(项不存在为null)
■■hincrby整数类型项的值递增hincrby 键 项 增量递增后的值(键或项不存在创建值0后再递增)
hincrbyfloat浮点类型项的值递增hincrbyfloat 键 项 增量递增后的值(键或项不存在创建值0后再递增)
hmset设置多个项的值hmset 键 [项 值]…OK
■■hset设置多个项和值hset 键 [项 值]…添加成功个数(已存在项会被覆盖)
■■hsetnx设置项和值(不覆盖)hsetnx 键 项 值成功:1;失败:0
■■hlen获取项的个数hlen 键存在:项的个数;不存在:0
■■hscan见scan
hkeys获取所有项的名称hkeys 键项数组
hvals获取所有项的值hvals 键值数组
hgetall获取所有项和值hgetall 键项和值数组
hstrlen获取项的值的长度hstrlen 键 项存在:项的值的长度;不存在:0
hrandfield (6.2.0+)获取随机项和值

列表命令

文档地址 https://redis.io/commands/blmove

常用命令名解释用法返回值
■■lindex获取指定下标的值lindex 键 下标存在:值;不存在或超出:null
linsert指定值前插入linsert 键 before 指定值 值成功:长度;不存在:-1
linsert指定值后插入linsert 键 after 指定值 值成功:长度;不存在:-1
■■lpush左侧推入lpush 键 [值]…长度
lpushx存在列表时左侧推入lpushx 键 [值]…长度
■■rpush右侧推入rpush 键 [值]…长度
rpushx存在列表时右侧推入rpushx 键 [值]…长度
■■lpop左侧弹出lpop 键存在:值;不存在:null
lpop (6.2.0+)左侧弹出多个lpop 键 个数存在:值数组;不存在:null
blpoplpop+阻塞lpop [键]… 时间存在:键和值数组;不存在:null
■■rpop右侧弹出lpop 键存在:值;不存在:null
rpop (6.2.0+)右侧弹出多个lpop 键 个数存在:值数组;不存在:null
brpoprpop+阻塞rpop [键]… 时间存在:键和值数组;不存在:null
■■llen获取列表长度llen 键成功:长度;不存在:0
lpos (6.0.6+)获取指定值的下标
lrange获取指定下标之间的值lrange 键 起始 结束值数组
ltrim保留指定下标之间的值ltrim 键 起始 结束OK
lset设置指定下标为指定值lset 键 下标 值OK
lrem删除指定值指定次数lrem 键 次数 值删除成功个数
rpoplpush (6.2.0-lmove)源右弹到目的左rpoplpush 源键 目的键存在:值;不存在:null
brpoplpush (6.2.0-blmove)rpoplpush+阻塞rpoplpush 源键 目的键 时间存在:值;不存在:null
lmove (6.2.0+)源和目的删除添加操作
blmove (6.2.0+)lmove+阻塞
lmpop (7.0.0+)多个键弹出多个值
blmpop (7.0.0+)lmpop+阻塞

集合命令

文档地址 https://redis.io/commands/sadd

常用命令名解释用法返回值
■■sadd添加元素sadd 键 [值]…添加成功的个数(不包括已存在)
■■srem删除多个值srem 键 [值]…成功个数
■■scard个数scard 键元素个数
■■smembers所有元素smembers 键值数组
■■sismember是否存在元素sismember 键 值存在:1;不存在:0
smismember (6.2.0+)是否存在多个元素smismember 键 [值]…[1,0]数组
■■sdiff差集sdiff [键]…第一个键与后面的差集
sdiffstore差集并储存sdiffstore 源键 目的键 [键]…元素个数(存储,存在会覆盖)
■■sinter交集sinter [键]…第一个键与后面的交集
sintercard (7.0.0+)交集并限制元素个数sintercard [键]… limit 个数元素个数
sinterstore交集并储存sinterstore 源键 目的键 [键]…元素个数(存储,存在会覆盖)
■■sunion并集sunion [键]…第一个键与后面的交集
sunionstore并集并储存sunionstore 源键 目的键 [键]…元素个数(存储,存在会覆盖)
spop返回并删除1个随机值spop 键成功:值;失败:null
返回并删除多个随机值spop 键 个数成功:值数组;失败:空数组
srandmember返回1个随机值srandmember 键成功:值;失败:null
返回多个随机值srandmember 键 个数成功:值数组;失败:空数组
■■sscan见scan
smove移动元素到目的键smove 源键 目的键 值成功:1;失败:0

有序集合命令

文档地址 https://redis.io/commands/bzmpop

常用命令名解释用法返回值
bzmpop
bzpopmax
bzpopmin
zadd
zcard
zcount
zdiff
zdiffstore
zincrby
zinter
zintercard
zinterstore
zlexcount
zmpop
zmscore
zpopmax
zpopmin
zrandmember
zrange
zrangebylex
zrangebyscore
zrangestore
zrank
zrem
zremrangebylex
zremrangebyrank
zremrangebyscore
zrevrange
zrevrangebylex
zrevrangebyscore
zrevrank
zscan
zscore
zunion
zunionstore
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值