redis常用命令汇总

开发与运维NoSQL数据库

0.前言

之前我们已经部署了一个单节点的redis,并且可以通过service的方式管理redis服务了,今天我们就来正式使用一下redis,对redis的常用命令进行汇总。

1.连接redis

在正式使用redis常用命令之前,我们先通过redis客户端连接一下redis服务端。

1.1 本地连接

直接在服务器上连接本地服务端,命令如下:

cd /usr/local/redis/bin/
./redis-cli

出现redis操作控制台,并打印redis连接信息,说明连接成功,如下所示:

127.0.0.1:6379>

1.2 远程连接

远程连接可以通过本地客户端模拟,或者远程客户端连接。 (1)模拟远程连接 使用本地客户端远程连接服务,只需要输入服务端的远程连接IP地址和端口即可,命令如下:

cd /usr/local/redis/bin/
./redis-cli -h 192.168.159.167 -p 6379

连接成功之后,同样会输出redis连接控制台:

192.168.159.167:6379>

(2)远程客户端连接 这里尝试在windows通过redis图形界面客户端AnotherRedisDesktopManager连接redis试下。
依次执行"New Connection" ->"输入连接信息"进行连接,如下图所示:

picture.image

picture.image 这里我们的host为192.168.159.167,端口为6379,暂时没有设置用户名密码,所以不用填,之后点击"ok"按钮,即可完成连接,连接完成显示界面如下:

picture.image 这里使用的AnotherRedisDesktopManager是一款比较好用的redis客户端,下载地址为https://github.com/qishibo/AnotherRedisDesktopManager。

2.服务器命令

启动redis服务之后,很多时候需要查看服务信息,所以我们先来看下哪些命令可以查看redis服务运行情况。

2.1 ping

使用ping命令可以检查服务响应情况,具体用法如下:

127.0.0.1:6379> ping
PONG

2.2 echo

使用echo命令可以打印字符串,具体用法如下:

127.0.0.1:6379> echo hello
"hello"

2.3 quit/exit

使用quit/exit退出连接,具体用法如下:

127.0.0.1:6379> exit

会断开和redis server的连接。

2.4 shutdown

使用shutdown命令会停掉redis server,自然也会断开连接,具体用法如下:

127.0.0.1:6379> shutdown
not connected>

2.5 info

使用info可以查看server详细信息,具体用法如下:

127.0.0.1:6379> info
# Server
redis_version:7.4.0
redis_git_sha1:00000000
redis_git_dirty:1
redis_build_id:bb6df186d8c3a54b
redis_mode:standalone
os:Linux 5.14.0-503.14.1.el9_5.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:c11-builtin
gcc_version:11.5.0
process_id:1177291
process_supervised:no
run_id:e6e669e22b08f2e22f7f2a062ad8cea8f11c1f12
tcp_port:6379
server_time_usec:1749270876252016
uptime_in_seconds:245
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:4440412
executable:/usr/local/redis/bin/redis-server
config_file:/usr/local/redis/conf/redis.conf
io_threads_active:0
listener0:name=tcp,bind=0.0.0.0,port=6379
...........

2.6 slowlog

slowlog用于查看慢查询日志,可以查询所有,也可以查询某一条,具体用法如下:
(1)查询所有

127.0.0.1:6379> slowlog get
(empty array)

(2)查询某条

127.0.0.1:6379> slowlog get 1
(empty array)

因为目前没有慢查询日志,所以显示为空。

2.7 select

默认情况下,redis有16个db,可以使用select命令选择使用db号,具体用法如下:

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]

之后在命令行会看到选择了db 1。

2.8 dbsize

dbsize可以用来查看当前db的key总数,具体用法如下:

127.0.0.1:6379> dbsize
(integer) 1

2.9 move

move命令可以将一个db里面的key移动到另外一个db,具体用法如下:

127.0.0.1:6379> MOVE x 1
(integer) 1

上述命令将key x从db 0移动到db 1

2.10 flushdb

使用flushdb可以清空db所有的key,具体用法如下:

127.0.0.1:6379> flushdb
OK

2.11 flushall

使用flushall可以清空所有db的所有key,具体用法如下:

127.0.0.1:6379> flushall
OK

3.key命令

在redis中,不论是什么类型的数据,都是以key-value的形式存在的,接下来看下key相关常用的命令有哪些。
在执行key相关命令之前,我们先来创建一些用于测试的key和value,命令如下:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set b 2
OK
127.0.0.1:6379> set c 3
OK
127.0.0.1:6379> set x hello
OK
127.0.0.1:6379> set y [1,2,3]
OK

在db0设置了5个key,分别是a,b,c,x和y。

3.1 查看所有key

使用keys命令查看当前db所有的key,具体命令如下:

127.0.0.1:6379> keys *
1) "b"
2) "c"
3) "x"
4) "a"
5) "y"

3.2 key总数

使用dbsize查看key总数,具体命令如下:

127.0.0.1:6379> dbsize
(integer) 5

可以看到当前db的key总数为5。

3.3 key是否存在

使用exists命令查看当前db所有的key,具体命令如下:

127.0.0.1:6379> EXISTS x
(integer) 1
127.0.0.1:6379> EXISTS d
(integer) 0

可以看到x存在,d不存在。

3.4 删除key

使用del命令删除指定key,具体命令如下:

127.0.0.1:6379> del y
(integer) 1

del后面接多个key,可以一次删除多个key。

3.5 设置过期时间

使用expire命令设置超时时间,具体使用如下:

127.0.0.1:6379> set y [1,2,3] // 重新添加key y
OK
127.0.0.1:6379> EXPIRE y 5 // 设置过期时间,单位为秒
(integer) 1
127.0.0.1:6379> get y
"[1,2,3]"
127.0.0.1:6379> get y //5秒后获取
(nil)

可以看到5秒后key过期,获取key的值为nil。

3.6 查看有效时长

使用ttl命令查看key有效时长,具体使用如下:

127.0.0.1:6379> set y [1,2,3] // 重新添加key y
OK
127.0.0.1:6379> EXPIRE y 100 // 设置100s过期时间
(integer) 1
127.0.0.1:6379> ttl y // 查看有效时长
(integer) 98

最后可以看到有效时长为98秒。

3.7 移除过期时间

使用persist命令设置超时时间,具体使用如下:

127.0.0.1:6379> set y [1,2,3] // 重新添加key y
OK
127.0.0.1:6379> EXPIRE y 100 // 设置100s过期时间
(integer) 1
127.0.0.1:6379> ttl y // 查看有效时长
(integer) 98
127.0.0.1:6379> PERSIST y // 移除过期时间
(integer) 1
127.0.0.1:6379> ttl y // 再次查看过期时间 
(integer) -1

最后发现key y过期时间为-1,说明永远不过期。

3.8 key数据类型

使用type查看key对应value数据类型,具体命令如下:

127.0.0.1:6379> type a
string

可以看到key a的value数据类型为string。

3.9 随机返回key

使用randomkey随机返回一个key,具体用法如下:

127.0.0.1:6379> RANDOMKEY
"b"
127.0.0.1:6379> RANDOMKEY
"a"
127.0.0.1:6379> RANDOMKEY
"a"

3.10 key重命名

使用rename重命名一个key,具体用法如下:

127.0.0.1:6379> RENAME a e
OK
127.0.0.1:6379> get e
"1"

如果希望判断e是否存在,可以用renamex命令,用法如下:

127.0.0.1:6379> RENAMEX a e
OK
127.0.0.1:6379> get e
"1"

4.五大数据类型命令

我们知道,redis支持五大数据类型,分别是:
(1)字符串类型:string
(2)列表类型:list
(3)集合类型:set
(4)哈希类型:hash
(5)有序集合类型:zset
正是通过以上不同的数据类型让redis可以满足不同业务场景的存储需求,被许多用户所青睐。

4.1 string类型

字符串类型是redis最基础的数据结构,其他几种数据类型都是在字符串类型基础上构建的,字符串的值可以是:字符串,数字和二进制。

4.1.1 设置键值命令

(1)创建key、value基本命令
使用set命令可以将key对应的value值设置为string类型,命令如下:

127.0.0.1:6379> set s hello
OK

(2)当key不存在时创建key,value
使用setnx可以在key不存在时创建string类型的value值,命令如下:

127.0.0.1:6379> setnx s hello
(integer) 0
127.0.0.1:6379> setnx x hello
(integer) 1

(3)创建key,value并设置过期时间 使用setex可以创建key,value并设置过期时间,命令如下:

127.0.0.1:6379> setex x 100 1
OK
127.0.0.1:6379> ttl x
(integer) 94

(4)批量设置键值对
使用mset可以批量设置键值对,命令如下:

127.0.0.1:6379> mset a 1 b 2 c 3
OK
127.0.0.1:6379> keys *
1) "c"
2) "b"
3) "a"

如果需要判断key是否存在,则使用msetnx,命令如下:

127.0.0.1:6379> msetnx a 1 b 2 c 3
OK
127.0.0.1:6379> keys *
1) "c"
2) "b"
3) "a"

注意:msetnx是原子命令,要么都成功,要么都失败。 (5)对value执行+/-1
使用incr/decr可以对数值型的value执行+/-1的操作,命令如下:

127.0.0.1:6379> incr c
(integer) 4
127.0.0.1:6379> get c
"4"
127.0.0.1:6379> decr c
(integer) 3
127.0.0.1:6379> get c
"3"

(6)对value执行+/-指定步长
使用incrby/decrby n可以对数值型的value执行+/-n的操作,命令如下:

127.0.0.1:6379> incrby c 5
(integer) 8
127.0.0.1:6379> get c
"8"
127.0.0.1:6379> decrby c 3
(integer) 5
127.0.0.1:6379> get c
"5"

(7)设置指定位置字符
setrange命令可以修改指定位置的字符,命令如下:

127.0.0.1:6379> set x kittt
OK
127.0.0.1:6379> setrange x 4 y
(integer) 5
127.0.0.1:6379> get x
"kitty"

(8)追加字符串
append命令在value后面追加指定的字符串,命令如下:

127.0.0.1:6379> append x hello
(integer) 10
127.0.0.1:6379> get x
"kittyhello"
4.1.2 获取键值命令

(1)获取key,value基本命令
使用get key获取对应key的value值,命令如下:

127.0.0.1:6379> get x
"kittyhello"

(2)批量获取多个key,value
使用mget获取多个key,value值,命令如下:

127.0.0.1:6379> mset x 1 y 2 z 3
OK
127.0.0.1:6379> mget x y z
1) "1"
2) "2"
3) "3"

(3)获取key对应value长度
使用strlen获取value长度,命令如下:

127.0.0.1:6379> strlen x
(integer) 1

(4)获取子字符串
使用getrange获取子字符串,命令如下:

127.0.0.1:6379> set h helloworld
OK
127.0.0.1:6379> getrange h 0 3
"hell"

4.2 List类型

redis列表类型是简单的字符串列表,按照插入顺序排序,在redis中几乎可以将元素插入到列表的任意位置。

4.2.1 添加操作

(1)左边/右边插入元素
使用lpush/rpush向列表左边或者右边插入元素,命令如下:

127.0.0.1:6379> lpush alist a b c
(integer) 3
127.0.0.1:6379> rpush alist d
(integer) 4
127.0.0.1:6379> lrange alist 0 -1
1) "c"
2) "b"
3) "a"
4) "d"

如果是向已经存在的列表中插入元素,则可以使用lpushx/rpushx命令,如下所示:

127.0.0.1:6379> lpushx blist e f
(integer) 0
127.0.0.1:6379> lpushx alist e f
(integer) 6
127.0.0.1:6379> lrange alist 0 -1
1) "f"
2) "e"
3) "c"
4) "b"
5) "a"
6) "d"

可以看到列表如果不存在,则会插入失败。
(2)指定位置插入元素
使用linsert key before/after pivot 可以向指定元素前/后插入一个或者多个元素,具体用法如下所示:

127.0.0.1:6379> linsert alist before a g
(integer) 7
127.0.0.1:6379> linsert alist after f k
(integer) 8
127.0.0.1:6379> lrange alist 0 -1
1) "f"
2) "k"
3) "e"
4) "c"
5) "b"
6) "g"
7) "a"
8) "d"
4.2.2 查找操作

(1)下标查找
使用lindex可以通过下标找到列表中的元素,命令如下所示:

127.0.0.1:6379> lindex alist 0
"f"

可以看到下标为0的元素是f (2)查询子列表 通过lrange指定下标区间,可以获取子列表,命令如下:

127.0.0.1:6379> lrange alist 0 3
1) "f"
2) "k"
3) "e"
4) "c"
127.0.0.1:6379> lrange alist 0 -1
1) "f"
2) "k"
3) "e"
4) "c"
5) "b"
6) "g"
7) "a"
8) "d"

(3)列表长度 使用llen命令可以获取列表长度,命令如下:

127.0.0.1:6379> llen alist
(integer) 8
4.2.3 删除操作

(1)最左/右移除
使用lpop/rpop删除最左/右元素,命令如下:

127.0.0.1:6379> lpop alist
"f"
127.0.0.1:6379> rpop alist
"d"
127.0.0.1:6379> lrange alist 0 -1
1) "k"
2) "e"
3) "c"
4) "b"
5) "g"
6) "a"

(2)删除指定value
使用lrem删除指定value的元素,命令格式为:lrem key count value,用法如下:

127.0.0.1:6379> lrem alist 1 a
(integer) 1
127.0.0.1:6379> lrange alist 0 -1
1) "k"
2) "e"
3) "c"
4) "b"
5) "g"

其中count表示至多删除count个value,如果count<0,表示从尾部搜索,count=0则是删除所有的value元素。
(3)删除子列表
使用ltrim并指定列表下标,可以删除子列表元素,命令如下:

127.0.0.1:6379> LTRIM alist 1 2
OK
127.0.0.1:6379> lrange alist 0 -1
1) "e"
2) "c"

(4)弹出值到另一个列表
使用RPOPLPUSH可以将一个列表最后一个元素添加到另外一个列表的头部,命令如下:

127.0.0.1:6379> lrange alist 0 -1
1) "e"
2) "c"
127.0.0.1:6379> lpush blist a
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> RPOPLPUSH alist blist
"c"
127.0.0.1:6379> LRANGE blist 0 -1
1) "c"
2) "a"
4.2.4 修改操作

通过索引修改元素值,命令如下:

127.0.0.1:6379> LRANGE blist 0 -1
1) "c"
2) "a"
127.0.0.1:6379> lset blist 0 b
OK
127.0.0.1:6379> LRANGE blist 0 -1
1) "b"
2) "a"

可以看到index为0的"c"被修改为了"b"。

4.2.5 阻塞操作

在redis中可以使用blpop/brpop移除列表的第一个或最后一个元素,如果列表没有元素就会阻塞等待超时或发现可弹出元素为止,使用方式如下:

127.0.0.1:6379> blpop blist 10
1) "blist"
2) "a"
127.0.0.1:6379> brpop blist 10
1) "blist"
2) "e"
127.0.0.1:6379> LRANGE blist 0 -1
1) "b"
2) "c"
3) "d"

如果使用brpoplpush还可以将一个列表的第一个元素添加到另一个列表当中,命令如下:

LRANGE alist 0 -1
1) "e"
127.0.0.1:6379>
127.0.0.1:6379> BRPOPLPUSH alist blist 10
"e"
127.0.0.1:6379> LRANGE blist 0 -1
1) "e"
2) "b"
3) "c"
4) "d"

4.3 Set类型

redis中的set类型是无序集合,集合中是不能出现重复元素的,也不能通过索引直接获取集合元素。

4.3.1 添加操作

使用sadd向集合中添加元素,命令如下:

127.0.0.1:6379> sadd aset a b c d
(integer) 4
4.3.2 查找操作

(1)返回所有成员
使用smembers命令返回集合所有元素,命令如下:

127.0.0.1:6379> smembers aset
1) "a"
2) "b"
3) "c"
4) "d"

(2)返回集合成员数
使用scard返回集合元素总数,命令如下:

127.0.0.1:6379> scard aset
(integer) 4

(3)判断是否是集合成员
使用sismember判断是否是集合成员,命令如下:

127.0.0.1:6379> sismember aset b
(integer) 1
127.0.0.1:6379> sismember aset e
(integer) 0

(4)随机返回指定数成员
使用srandmember返回指定个数的集合成员,命令如下:

127.0.0.1:6379> srandmember aset
"c"
127.0.0.1:6379> srandmember aset 3
1) "a"
2) "b"
3) "d"

(5)搜索集合元素
使用sscan配合正则可以搜索集合中指定成员,命令如下:

127.0.0.1:6379> sscan aset 0 match a*
1) "0"
2) 1) "a"
4.3.3 删除操作

(1)移除集合中一个或多个成员

127.0.0.1:6379> srem aset a b
(integer) 2
127.0.0.1:6379> smembers aset
1) "c"
2) "d"

(2)随机移除指定个数成员

127.0.0.1:6379> sadd aset e f
(integer) 2
127.0.0.1:6379> smembers aset
1) "c"
2) "d"
3) "e"
4) "f"
127.0.0.1:6379> spop aset 2
1) "c"
2) "d"
127.0.0.1:6379> smembers aset
1) "e"
2) "f"
4.3.4 交集

使用sinter命令可以获取两个集合的交集,命令如下:

127.0.0.1:6379> sadd aset a b c d
(integer) 4
127.0.0.1:6379> sadd bset a b
(integer) 2
127.0.0.1:6379> sinter aset bset
1) "a"
2) "b"

使用sinterstore还可以将交集存储到新的集合中,命令如下:

127.0.0.1:6379> sinterstore cset aset bset
(integer) 2
127.0.0.1:6379> smembers cset
1) "a"
2) "b"
4.3.5 并集

使用sunion命令可以获取两个集合的并集,命令如下:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd aset a b
(integer) 2
127.0.0.1:6379> sadd bset c d
(integer) 2
127.0.0.1:6379> sunion aset bset
1) "a"
2) "b"
3) "c"
4) "d"

还可以将并集存储到新的集合中,命令如下:

127.0.0.1:6379> sunionstore cset aset bset
(integer) 4
127.0.0.1:6379> smembers cset
1) "a"
2) "b"
3) "c"
4) "d"
4.3.6 差集

使用sdiff命令可以获取两个集合的差集,命令如下:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd aset a b c d
(integer) 4
127.0.0.1:6379> sadd bset a b
(integer) 2
127.0.0.1:6379> sdiff aset bset
1) "c"
2) "d"

还可以将差集存储到新的集合中,命令如下:

127.0.0.1:6379> sdiffstore cset aset bset
(integer) 2
127.0.0.1:6379> smembers cset
1) "c"
2) "d"
4.3.7 集合成员移动

使用smove可以将一个集合的成员移动到另外一个集合,命令如下:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> sadd aset a b
(integer) 2
127.0.0.1:6379> sadd bset c d
(integer) 2
127.0.0.1:6379> smove aset bset a
(integer) 1
127.0.0.1:6379> smembers bset
1) "c"
2) "d"
3) "a"

4.4 Hash类型

4.4.1 添加操作

(1)添加单个hash值
使用hset添加单个field值,命令如下:

127.0.0.1:6379> hset ahash name dale
(integer) 1

(2)添加多个hash值
使用hmset添加多个field值,命令如下:

127.0.0.1:6379> hmset ahash name roy age 32 gender male
OK

(3)filed不存在才能设置
使用hsetnx添加单个field值,只有field不存在时才会添加成功,命令如下:

127.0.0.1:6379> hsetnx ahash name roy2
(integer) 0
127.0.0.1:6379> hsetnx ahash id 001
(integer) 1
4.4.2 查找操作

(1)获取hash表指定字段的值
使用hget获取单个field值,命令如下:

127.0.0.1:6379> hget ahash name
"roy"

(2)获取多个给定字段的值
使用hmget获取多个field值,命令如下:

127.0.0.1:6379> hmget ahash name age gender
1) "roy"
2) "32"
3) "male"

(3)判断字段是否存在
使用hexists判断field是否存在,命令如下:

127.0.0.1:6379> hexists ahash name
(integer) 1
127.0.0.1:6379> hexists ahash class
(integer) 0

(4)获取字段的数量
使用hlen获取field数量,命令如下:

127.0.0.1:6379> hlen ahash
(integer) 4

(5)获取所有字段
使用hkeys获取所有的field,命令如下:

127.0.0.1:6379> hkeys ahash
1) "name"
2) "age"
3) "gender"
4) "id"

(6)获取所有字段值
使用hvals获取所有的value,命令如下:

127.0.0.1:6379> hvals ahash
1) "roy"
2) "32"
3) "male"
4) "001"

(7)获取所有信息
使用hgetall获取所有的field和value,命令如下:

127.0.0.1:6379> hgetall ahash
1) "name"
2) "roy"
3) "age"
4) "32"
5) "gender"
6) "male"
7) "id"
8) "001"

(8)遍历哈希表
使用hscan遍历哈希表,命令如下:

127.0.0.1:6379> hscan ahash 0
1) "0"
2) 1) "name"
   2) "roy"
   3) "age"
   4) "32"
   5) "gender"
   6) "male"
   7) "id"
   8) "001"
4.4.3 修改操作

使用hincrby可以给数值类型的value加n值,命令如下

127.0.0.1:6379> hincrby ahash age 1(可以指定任意数字)
(integer) 33

注意:只能修改field类型是数字类型的值。

4.4.4 删除操作

使用hdel删除一个或者多个field,命令如下:

127.0.0.1:6379> hdel ahash id
(integer) 1
127.0.0.1:6379> hgetall ahash
1) "name"
2) "roy"
3) "age"
4) "33"
5) "gender"
6) "male"

4.5 Zset类型

有序集合保留了元素不能重复的特性,但是给每个元素增加了一个socre,用于元素排序。

4.5.1 添加操作

使用zadd给集合添加元素,命令如下:

127.0.0.1:6379> zadd myzs 1 a 2 b 3 c
(integer) 3

4.5.2 查找操作

(1)获取有序集合的成员数
使用zcard获取集合成员数,命令如下:

127.0.0.1:6379> zcard myzs
(integer) 3

(2)返回成员分数值
使用zscore获取集合成员分数,命令如下:

127.0.0.1:6379> zscore myzs a
"1"
127.0.0.1:6379> zscore myzs b
"2"

(3)指定score区间成员数
使用zcount获取score区间成员数,命令如下:

127.0.0.1:6379> zcount myzs 1 3
(integer) 3

(4)迭代有序集合
使用zscan迭代有序集合,命令如下:

127.0.0.1:6379> zscan myzs 0
1) "0"
2) 1) "a"
   2) "1"
   3) "b"
   4) "2"
   5) "c"
   6) "3"

(5)获取指定成员索引
使用zrank从小到大展示成员索引,如下所示:

127.0.0.1:6379> zrank myzs a
(integer) 0
127.0.0.1:6379> zrank myzs b
(integer) 1
127.0.0.1:6379> zrank myzs c
(integer) 2

也是从大到小展示,如下所示:

127.0.0.1:6379> ZREVRANK myzs a
(integer) 2
127.0.0.1:6379> ZREVRANK myzs b
(integer) 1
127.0.0.1:6379> ZREVRANK myzs c
(integer) 0

(6)获取区间内成员
使用zrange可以获取指定区间成员,如下所示:

127.0.0.1:6379> zrange myzs 0 2
1) "a"
2) "b"
3) "c"

还可以基于分数从高到低返回区间成员,命令如下:

127.0.0.1:6379> zrevrange myzs 0 2
1) "c"
2) "b"
3) "a"

4.5.3 修改操作

使用zincrby可以给指定成员增加分数,如下所示:

127.0.0.1:6379> zincrby myzs 3 a
"4"

4.5.4 删除操作

(1)删除一个或多个元素
使用zrem可以删除一个或多个成员,如下所示:

127.0.0.1:6379> zrem myzs a c
(integer) 2
127.0.0.1:6379> zrange myzs 0 2
1) "b"

(2)移除给定区间的所有成员
使用ZREMRANGEBYLEX可以删除指定区间成员,如下所示:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> zadd myzs 1 a 2 b 3 c 4 d 5 f
(integer) 5
127.0.0.1:6379> zrange myzs 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "f"
127.0.0.1:6379> ZREMRANGEBYLEX myzs - +
(integer) 5

(3)移除排名区间的所有成员
使用ZREMRANGEBYRANK可以删除指定区间成员,如下所示:

127.0.0.1:6379> ZREMRANGEBYRANK myzs 1 3
(integer) 3
127.0.0.1:6379> ZRANGE myzs 0 -1
1) "a"
2) "f"

(4)移除分数区间所有成员
使用ZREMRANGEBYSCORE可以删除指定区间成员,如下所示:

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> zadd myzs 1 a 2 b 3 c 4 d 5 f
(integer) 5
127.0.0.1:6379> ZREMRANGEBYSCORE myzs 1 3
(integer) 3
127.0.0.1:6379> ZRANGE myzs 0 -1
1) "d"
2) "f"

5.总结

redis一共支持五种数据类型,分别是:
(1)字符串类型
(2)列表类型
(3)集合类型
(4)哈希表类型
(5)有序集合类型
每种数据类型都有其特定的使用场景,并且每种数据类型的操作命令都略有不同,所以涉及到的命令非常的多,大家可以不用记住每一条命令,知道大致用法即可,等到要使用的时候再查找就可以了。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生数据库 veDB 核心技术剖析与展望
veDB 是一款分布式数据库,采用了云原生计算存储分离架构。本次演讲将为大家介绍火山引擎这款云原生数据库的核心技术原理,并对未来进行展望。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论