Redis常用的对象操作命令

本文详细介绍了Redis中五个主要数据类型的操作命令,包括String的设置、获取和更新,List的插入、弹出与获取,Set的添加、检查与删除,ZSet的分数排序及操作,以及Hash的键值对管理。同时涵盖了对象的过期时间设置、持久化操作以及服务器信息查看等相关命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

Redis客户端命令

exit
  • 作用:退出客户端
shutdown
  • 作用:关闭redis服务器
select index
  • 作用:选择库,index从0-15
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]> select 16
(error) ERR DB index is out of range
127.0.0.1:6379[15]> 

dbsize
  • 作用:查看当前库中key的数量
keys *
  • 查看当前库的所有key
  • 可以用keys k??? 查看,一个?代表一个字符;
  • 也可以用keys k* 查看,一个*号代表0或多个字符;
127.0.0.1:6379> keys k???
1) "key3"
2) "key2"
3) "key1"
127.0.0.1:6379> keys k*
1) "key3"
2) "key2"
3) "key1"
flushdb
  • 作用:删除当前库中所有数据

同类操作:

  • flushall // 删除所有库中所有数据
exists key
  • 作用:判断key是否存在,存在返回1,不存在返回0
move key index
  • 作用:将当前key移动到index号库中
127.0.0.1:6379[1]> set k3 hello
OK
127.0.0.1:6379[1]> get k3
"hello"
127.0.0.1:6379[1]> EXISTS k3
(integer) 1
127.0.0.1:6379[1]> move k3 2
(integer) 1
127.0.0.1:6379[1]> EXISTS k3
(integer) 0
127.0.0.1:6379[1]> SELECT 2
OK
127.0.0.1:6379[2]> dbsize
(integer) 1
127.0.0.1:6379[2]> get k3
"hello"
ttl key
  • 作用:查看当前key还有多少秒过期,-1表示永不过期,-2 表示已过期

同类操作:

  • pttl key // 返回key的剩余生存时间,单位是毫秒;
expire key num
  • 作用:设置key的过期时间,单位秒

同类操作:

  • pexpire key num // 设置key的过期时间,单位是毫秒
  • expireat key time // 设置key的过期时间,time是以秒为精度表示的时间戳;
  • pexpireat key time // 设置key的过期时间,time是以毫秒为精度表示的时间戳
127.0.0.1:6379> ttl k2
(integer) -1
127.0.0.1:6379> expire k2 100
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 98
persist key
  • 作用:移除一个键的过期时间;
127.0.0.1:6379> expire key 100
(integer) 1
127.0.0.1:6379> ttl key
(integer) 98
127.0.0.1:6379> persist key
(integer) 1
127.0.0.1:6379> ttl key
(integer) -1
del key
  • 作用:删除key
type key
  • 作用:查看key的数据类型
127.0.0.1:6379> set k2 hello
OK
127.0.0.1:6379> get k2
"hello"
127.0.0.1:6379> type k2
string

127.0.0.1:6379> rpush mylist 1 2 3 4
(integer) 4
127.0.0.1:6379> lrange mylist 0 4
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> type mylist
list
savebgsave
  • 作用:立即执行持久化
  • save会阻塞当前其他操作,
  • bgsave会在后台异步执行快照操作,同时还能响应客户端请求,
  • 可以通过lastsave命令获取最后一次成功执行快照的时间。
info
  • 查看服务器信息,如果只输入info会把全部信息打印出来,包括:ServerClientsMemoryPersistenceStatsReplicationCPUClusterKeyspace,等,可以执行info [section]来查看特定的信息
127.0.0.1:6379> info Replication
# Replication
role:master
connected_slaves:0
master_replid:fc1c73850da40c0187e27048bdfe4a3facc30bf8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

Redis 数据操作

redis中的五个对象类型:

  • string
  • list
  • set (无序集合)
  • zset (有序集合)
  • hash

一、String操作

set key value
  • 作用:设置 key value
  • 如果value中有空格,则在两端加引号
  • 单双引号的区别是:单引号会将特殊字符转义,双引号原样存储
127.0.0.1:6379> set k5 'hello world'
OK
127.0.0.1:6379> get k5
"hello world"
127.0.0.1:6379> set k6 "hello world"
OK
127.0.0.1:6379> get k6
"hello world"
127.0.0.1:6379> set k7 'hello\tworld'
OK
127.0.0.1:6379> get k7
"hello\\tworld"
127.0.0.1:6379> strlen k7
(integer) 12
127.0.0.1:6379> set k8 "hello\tworld"
OK
127.0.0.1:6379> get k8
"hello\tworld"
127.0.0.1:6379> strlen k8
(integer) 11
get key
  • 作用:获取key的值
del key
  • 作用:删除key
append key value
  • 作用:向key中添加值
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> append k1 world
(integer) 10
127.0.0.1:6379> get k1
"helloworld"
strlen key
  • 作用:查看key对应的value的长度
127.0.0.1:6379> get k1
"helloworld"
127.0.0.1:6379> strlen k1
(integer) 10
127.0.0.1:6379> strlen k2
(integer) 5
127.0.0.1:6379> get k2
"world"
incr key
  • 作用:给key对应的value值加1,如果value不是数字则报错

同类操作:

  • decr key // 减1
  • incrby key num // 加上指定的值
  • decrby key num // 减去指定的值
127.0.0.1:6379> set k3 10
OK
127.0.0.1:6379> incr k3
(integer) 11
127.0.0.1:6379> incrby k3 10
(integer) 21
127.0.0.1:6379> decr k3
(integer) 20
127.0.0.1:6379> decrby k3 10
(integer) 10

127.0.0.1:6379> set k4 hello
OK
127.0.0.1:6379> incr k4
(error) ERR value is not an integer or out of range
getrange key start end
  • 作用:获取子串,从start到end
  • end位置的字符也包含
  • end可以用负数,从结尾开始查,-1代表最后一位字符
127.0.0.1:6379> set k4 'hello world'
OK
127.0.0.1:6379> get k4
"hello world"
127.0.0.1:6379> strlen k4
(integer) 11
127.0.0.1:6379> getrange k4 0 0
"h"
127.0.0.1:6379> getrange k4 0 1
"he"
127.0.0.1:6379> getrange k4 0 11
"hello world"
127.0.0.1:6379> getrange k4 0 10
"hello world"
127.0.0.1:6379> getrange k4 0 9
"hello worl"
127.0.0.1:6379> getrange k4 0 -1
"hello world"
127.0.0.1:6379> getrange k4 0 -2
"hello worl"
setrange key num str
  • 作用:从num位置开始向后将数据修改为str
127.0.0.1:6379> set k1 hi
OK
127.0.0.1:6379> get k1
"hi"
127.0.0.1:6379> SETRANGE k1 0 he
(integer) 2
127.0.0.1:6379> get k1
"he"
127.0.0.1:6379> setrange k1 0 hello
(integer) 5
127.0.0.1:6379> get k1
"hello"
setex key time value
  • 作用:在设置值时,同时设置有效期
  • setex :set with expire
  • 单位是秒
127.0.0.1:6379> setex k4 10 hello
OK
127.0.0.1:6379> get k4
"hello"
127.0.0.1:6379> ttl k4
(integer) 4
127.0.0.1:6379> ttl k4
(integer) 0
setnx key value
  • 作用:当key不存在时,设置key值,当key存在时,不覆盖
  • setnx: set if not exist
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> setnx k1 hi
(integer) 0
127.0.0.1:6379> get k1
"hello"

127.0.0.1:6379> get kk1
(nil)
127.0.0.1:6379> setnx kk1 value
(integer) 1
127.0.0.1:6379> get kk1
"value"
mset key1 value1 key2 value2 ...
  • 作用:同时给多个key设置值

同类操作:

  • mget key1 key2 key3 ... // 同时获取多个key的值
  • mmore的意思;
127.0.0.1:6379> mset kk1 value1 kk2 value2 kk3 value3
OK
127.0.0.1:6379> mget kk1 kk2 kk3
1) "value1"
2) "value2"
3) "value3"
msetnx key1 value1 key2 value2 ...
  • 作用:当key1,key2…都不存在时,为key赋值,只要有一个存在就不赋值。
127.0.0.1:6379> mget key1 key4
1) "value1"
2) (nil)
127.0.0.1:6379> msetnx key1 kkvalue1 key4 kkvalue4
(integer) 0
127.0.0.1:6379> mget key1 key4
1) "value1"
2) (nil)

127.0.0.1:6379> mget key4 key5
1) (nil)
2) (nil)
127.0.0.1:6379> msetnx key4 kkvalue4 key5 kkvalue5
(integer) 1
127.0.0.1:6379> mget key4 key5
1) "kkvalue4"
2) "kkvalue5"
getset key value
  • 作用:将key的值返回,然后赋值为value
127.0.0.1:6379> get key1
"vv1"
127.0.0.1:6379> getset key1 value1
"vv1"
127.0.0.1:6379> get key1
"value1"

127.0.0.1:6379> get key2
(nil)
127.0.0.1:6379> getset key2 value2
(nil)
127.0.0.1:6379> get key2
"value2"

二、List操作

lrange listkey start end
  • 查看list中的数据,左边从start开始,到end结束;
  • end 可以是负数,负数时从右开始数,包含第end位元素;
  • 0 到 -1 代表整个链表;
  • 注意:这里的llist的意思不是left,没有rrange命令;
127.0.0.1:6379> lpush listkey 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange listkey 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

127.0.0.1:6379> lrange listkey 0 4
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lrange listkey 1 4
1) "4"
2) "3"
3) "2"
4) "1"
lpushrpush
  • lpush listkey value1 value2 value3 ... // 依次在左边插入元素
  • rpush listkey value1 value2 value3 ... // 依次在右边插入元素
  • 在左边插入元素时,list中元素顺序与插入顺序相反;
127.0.0.1:6379> lpush listkey 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange listkey 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

127.0.0.1:6379> rpush listkey2 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange listkey2 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
lpoprpop
  • lpop listkey // 弹出list中左边第一个元素
  • rpop listkey // 弹出list中右边第一个元素
127.0.0.1:6379> lrange listkey 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lpop listkey
"5"
127.0.0.1:6379> lrange listkey 0 -1
1) "4"
2) "3"
3) "2"
4) "1"

127.0.0.1:6379> lrange listkey 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpop listkey
"1"
127.0.0.1:6379> lrange listkey 0 -1
1) "4"
2) "3"
3) "2"
rpoplpush listkey1 listkey2
  • 将listkey1右边的元素弹出,然后从左边插入listkey2
127.0.0.1:6379> lrange listkey1 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
127.0.0.1:6379> lrange listkey2 0 -1
1) "0"
2) "1"
3) "2"
127.0.0.1:6379> rpoplpush listkey1 listkey2
"4"
127.0.0.1:6379> lrange listkey1 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> lrange listkey2 0 -1
1) "4"
2) "0"
3) "1"
4) "2"
  • 注意:没有lpoprpushlpoplpushrpoprpush
127.0.0.1:6379> lpoprpush listkey2 listkey1
(error) ERR unknown command `lpoprpush`, with args beginning with: `listkey2`, `listkey1`, 
127.0.0.1:6379> rpoprpush listkey1 listkey2
(error) ERR unknown command `rpoprpush`, with args beginning with: `listkey1`, `listkey2`, 
127.0.0.1:6379> lpuplpush listkey1 listkey2
(error) ERR unknown command `lpuplpush`, with args beginning with: `listkey1`, `listkey2`,
  • 可以在同一个list上操作:
127.0.0.1:6379> lrange listkey1 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
127.0.0.1:6379> rpoplpush listkey1 listkey1
"3"
127.0.0.1:6379> lrange listkey1 0 -1
1) "3"
2) "0"
3) "1"
4) "2"
lindex listkey index
  • 作用:获取List索引位index的元素
  • index是从0 开始的,如果是负数,则从右边开始计算,最后一位是-1
  • 注意llist的意思不是left,没有rindex
127.0.0.1:6379> lrange listkey 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lindex listkey 0
"4"
127.0.0.1:6379> lindex listkey 1
"3"
127.0.0.1:6379> lindex listkey 5
(nil)
127.0.0.1:6379> lindex listkey -1
"2"
llen listkey
  • 作用:获取List的长度
  • llist的意思;
  • 时间复杂度是O(1)
lrem listkey num vlaue
  • 作用:从list中删除num个值为value的元素
  • num小于等于0 时,删除全部值为value的元素
127.0.0.1:6379> lrange listkey 0 -1
1) "1"
2) "1"
3) "1"
4) "2"
5) "2"
6) "2"
7) "3"
8) "3"
9) "3"
127.0.0.1:6379> lrem listkey 1 2
(integer) 1
127.0.0.1:6379> lrange listkey 0 -1
1) "1"
2) "1"
3) "1"
4) "2"
5) "2"
6) "3"
7) "3"
8) "3"
127.0.0.1:6379> lrem listkey 3 3
(integer) 3
127.0.0.1:6379> lrange listkey 0 -1
1) "1"
2) "1"
3) "1"
4) "2"
5) "2"
127.0.0.1:6379> lrem listkey 0 1
(integer) 3
127.0.0.1:6379> lrange listkey 0 -1
1) "2"
2) "2"
ltrim listkey start end
  • 作用:将listkey中从start到end位置的元素取出来重新赋值给listkey;
  • 注意:包括结尾位置的元素
  • end也可以用负数
127.0.0.1:6379> lrange listkey 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
6) "5"
7) "6"
127.0.0.1:6379> ltrim listkey 0 4
OK
127.0.0.1:6379> lrange listkey 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
127.0.0.1:6379> ltrim listkey 0 -2
OK
127.0.0.1:6379> lrange listkey 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
lset key index value
  • 作用:将index位置的元素设置为value;
127.0.0.1:6379> lrange listkey 0 -1
1) "0"
2) "1"
3) "2"
4) "3"
5) "4"
127.0.0.1:6379> lset listkey 0 8
OK
127.0.0.1:6379> lrange listkey 0 -1
1) "8"
2) "1"
3) "2"
4) "3"
5) "4"
linsert listkey before/after value1 value2
  • 作用:在value1前边/后边插入值value2
127.0.0.1:6379> lrange listkey 0 -1
1) "8"
2) "1"
3) "2"
4) "3"
5) "4"
127.0.0.1:6379> linsert listkey before 8 9
(integer) 6
127.0.0.1:6379> lrange listkey 0 -1
1) "9"
2) "8"
3) "1"
4) "2"
5) "3"
6) "4"
127.0.0.1:6379> linsert listkey after 9 x
(integer) 7
127.0.0.1:6379> lrange listkey 0 -1
1) "9"
2) "x"
3) "8"
4) "1"
5) "2"
6) "3"
7) "4"

三、Set操作

sadd setkey value1 value2 value3 ...
  • 作用:将value值加入set,如果有重复的value,则只存储一个;
  • sset的意思;
smembers setkey
  • 作用:查看set中的元素;
127.0.0.1:6379> sadd setkey 1 2 3 4 4
(integer) 4
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
sismember setkey value
  • 作用:判断value是否在set中,存在返回1,不存在返回0
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> sismember setkey 3
(integer) 1
127.0.0.1:6379> sismember setkey 5
(integer) 0
scard setkey
  • 作用:获取set中元素个数;
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> scard setkey
(integer) 4
srem setkey value1 [value2 value3 ...]
  • 作用:删除set中值为value的元素;
  • 如果set中不存在value元素,则返回0;
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> srem setkey 3
(integer) 1
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "4"
127.0.0.1:6379> srem setkey 5
(integer) 0

# 可以同时删除多个
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
127.0.0.1:6379> srem setkey 5 6 7 8
(integer) 3
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
srandmember key num
  • 作用:从set中随机抽取num个数字;
  • 抽取的数字中不会有重复数字;
  • 所以,如果num大于set中元素个数,则将set中所有元素返回
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
127.0.0.1:6379> srandmember setkey 3
1) "6"
2) "7"
3) "3"
127.0.0.1:6379> srandmember setkey 3
1) "2"
2) "1"
3) "4"
127.0.0.1:6379> srandmember setkey 3
1) "1"
2) "4"
3) "7"
spop setkey [num]
  • 作用:随机弹出num个元素,如果num没写,默认是1个
127.0.0.1:6379> smembers setkey
1) "1"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> spop setkey 2
1) "1"
2) "4"
127.0.0.1:6379> smembers setkey
1) "2"
2) "3"
127.0.0.1:6379> spop setkey
"2"
127.0.0.1:6379> smembers setkey
1) "3"
smove setkey1 setkey2 value
  • 作用:将setkey1里的value移动到setkey2
  • 如果setkey1中存在value且移动成功则返回1;
  • 如果setkey1中不存在value则返回0;
127.0.0.1:6379> smembers setkey1
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers setkey2
1) "m"
2) "s"
3) "l"
127.0.0.1:6379> smove setkey1 setkey2 x
(integer) 1
127.0.0.1:6379> smembers setkey1
1) "z"
2) "y"
127.0.0.1:6379> smembers setkey2
1) "x"
2) "m"
3) "s"
4) "l"

127.0.0.1:6379> smove setkey1 setkey2 t
(integer) 0
sdiff setkey1 [setkey2 setkey3 ...]
  • 作用:返回在setkey1中但是不在setkey2...中的元素;
  • 如果参数不提供setkey2,则返回setkey1中的所有元素;
127.0.0.1:6379> smembers setkey1
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers setkey2
1) "x"
2) "m"
3) "s"
4) "l"
127.0.0.1:6379> sdiff setkey1
1) "x"
2) "y"
3) "z"
127.0.0.1:6379> sdiff setkey1 setkey2
1) "y"
2) "z"
sinter setkey1 [setkey1 setkey3 ...]
  • 作用:返回setkey1、setkey2…集合元素的交集;
  • 如果参数不提供setkey2则返回setkey1中全部元素;
127.0.0.1:6379> smembers setkey1
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers setkey2
1) "x"
2) "m"
3) "s"
4) "l"
127.0.0.1:6379> sinter setkey1
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> sinter setkey1 setkey2
1) "x"
sunion setkey1 [setkey2 setkey3 ...]
  • 作用:返回setkey1、setkey2 … 中元素的并集
127.0.0.1:6379> smembers setkey1
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers setkey2
1) "x"
2) "m"
3) "s"
4) "l"
127.0.0.1:6379> sunion setkey1
1) "x"
2) "y"
3) "z"
127.0.0.1:6379> sunion setkey1 setkey2
1) "s"
2) "z"
3) "m"
4) "x"
5) "y"
6) "l"

四、ZSet操作

  • 有序的集合,和Set一样是String类型元素的集合,且不允许有重复元素
  • 每个元素都会关联一个double类型的分数,通过分数为集合中的元素进行从小到大的排序;zset的成员是唯一的,但是分数却可以重复;
  • 在set的基础上加了一个score的值,之前set是k1 v2 k2 v2 ,现在zset是k1 score2 v2 k2 score2 v2;
zadd
  • zadd zsetkey score1 value1 [score2 value2 ...] // 添加值
  • 存储时,会按照score排序;
127.0.0.1:6379> zadd zsetkey 1 value1 2 value2 3 value3
(integer) 3

127.0.0.1:6379> zadd zsetkey 1 value4
(integer) 1
127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value4"
3) "value2"
4) "value3"
zrangezrevrange
  • zrange zsetkey start end [withscores] // 获取zset里从start到end的元素
  • zrevrange zsetkey start end [withscores] // 逆向获取元素
  • withscores意思是把score也显示出来
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "value1"
2) "10"
3) "value2"
4) "20"
5) "value3"
6) "30"
7) "value4"
8) "40"

127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value2"
3) "value3"
4) "value4"
127.0.0.1:6379> zrevrange zsetkey 0 -1
1) "value4"
2) "value3"
3) "value2"
4) "value1"

127.0.0.1:6379> zrevrange zsetkey 0 -1 withscores
1) "value4"
2) "40"
3) "value3"
4) "30"
5) "value2"
6) "20"
7) "value1"
8) "10"
zrangebyscorezrevrangebyscore
  • zrangebyscore zsetkey minscore maxscore [withscores] // 取score值在[minscore,maxscore]的元素
  • zrevrangebyscore zsetkey maxscore minscore [withscores] // 按score逆向获取
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "value1"
2) "10"
3) "value2"
4) "20"
5) "value3"
6) "30"
7) "value4"
8) "40"
127.0.0.1:6379> zrangebyscore zsetkey 10 20
1) "value1"
2) "value2"

# 不包含score
127.0.0.1:6379> zrangebyscore zsetkey 10 (30
1) "value1"
2) "value2"
127.0.0.1:6379> zrangebyscore zsetkey (10 (30
1) "value2"

# 分页
127.0.0.1:6379> zrangebyscore zsetkey 10 30
1) "value1"
2) "value2"
3) "value3"
127.0.0.1:6379> zrangebyscore zsetkey 10 30 limit 0 2
1) "value1"
2) "value2"

# 逆向
127.0.0.1:6379> zrangebyscore zsetkey 10 40 withscores
1) "value1"
2) "10"
3) "value2"
4) "20"
5) "value3"
6) "30"
7) "value4"
8) "40"
127.0.0.1:6379> zrevrangebyscore zsetkey 40 10 withscores
1) "value4"
2) "40"
3) "value3"
4) "30"
5) "value2"
6) "20"
7) "value1"
8) "10"
zrem zsetkey value [value2 ...]
  • 作用:删除value值;
127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value2"
3) "value3"
4) "value4"
127.0.0.1:6379> zrem zsetkey value3
(integer) 1
127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value2"
3) "value4"
zcard zsetkey
  • 作用:返回zset中元素个数
127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value2"
3) "value3"
4) "value4"
127.0.0.1:6379> zcard zsetkey
(integer) 4
zcount zsetkey minscore maxscore
  • 作用:统计score在[minscore,maxscore]的元素个数
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "value1"
2) "10"
3) "value2"
4) "20"
5) "value3"
6) "30"
7) "value4"
8) "40"
127.0.0.1:6379> zcount zsetkey 10 30
(integer) 3
zrankzrevrank
  • zrank zsetkey value // 获取value的位置
  • zrevrank zsetkey value // 逆向获取value的位置
127.0.0.1:6379> zrange zsetkey 0 -1
1) "value1"
2) "value2"
3) "value3"
4) "value4"
127.0.0.1:6379> zrank zsetkey value1
(integer) 0
127.0.0.1:6379> zrank zsetkey value2
(integer) 1
127.0.0.1:6379> zrank zsetkey value3
(integer) 2
127.0.0.1:6379> zrank zsetkey value4
(integer) 3
127.0.0.1:6379> zrank zsetkey value5
(nil)

127.0.0.1:6379> zrevrank zsetkey value1
(integer) 3
127.0.0.1:6379> zrevrank zsetkey value2
(integer) 2
127.0.0.1:6379> zrevrank zsetkey value3
(integer) 1
127.0.0.1:6379> zrevrank zsetkey value4
(integer) 0
zscore zsetkey value
  • 作用:获取value的score;
127.0.0.1:6379> zrange zsetkey 0 -1 withscores
1) "value1"
2) "10"
3) "value2"
4) "20"
5) "value3"
6) "30"
7) "value4"
8) "40"
127.0.0.1:6379> zscore zsetkey value1
"10"
127.0.0.1:6379> zscore zsetkey value2
"20"
127.0.0.1:6379> zscore zsetkey value3
"30"
127.0.0.1:6379> zscore zsetkey value4
"40"
127.0.0.1:6379> zscore zsetkey value5
(nil)

五、Hash操作

hset hashkey key1 value1 [key2 value2 ...]
  • 作用:设置hash值,value是多个键值对;
hget hashkey key
  • 作用:获取hashkey中key对应的value;
127.0.0.1:6379> hset hashkey name tom age 20 address BeiJing
(integer) 3
127.0.0.1:6379> hget hashkey name
"tom"
127.0.0.1:6379> hget hashkey age
"20"
127.0.0.1:6379> hget hashkey address
"BeiJing"

127.0.0.1:6379> hset hashkey birthday 2000-01-01
(integer) 1
127.0.0.1:6379> hget hashkey birthday
"2000-01-01"
hmset hashkey key1 value [key2 value ...]
  • 作用:一次放入多个key-value对;
  • hset也可以支持一次放入多个键值对;
  • hset一次放入多个返回的是放入的键值对数量,hmset返回的是OK;
127.0.0.1:6379> hmset hashkey3 name john age 29 address Beijing
OK
127.0.0.1:6379> hmget hashkey3 name age address
1) "john"
2) "29"
3) "Beijing"
hmget hashkey key1 [key2 key3 ...]
  • 作用:同时获取多个值;
127.0.0.1:6379> hmget hashkey name age address birthday
1) "tom"
2) "20"
3) "BeiJing"
4) "2000-01-01"
hgetall hashkey
  • 作用:返回hash中所有的键值对;
127.0.0.1:6379> hgetall hashkey2
1) "name"
2) "jack"
3) "age"
4) "30"
5) "address"
6) "shanghai"
hdel hashkey key1 [key2 ...]
  • 作用:删除键值对
127.0.0.1:6379> hgetall hashkey2
1) "name"
2) "jack"
3) "age"
4) "30"
5) "address"
6) "shanghai"
127.0.0.1:6379> hdel hashkey2 address age
(integer) 2
127.0.0.1:6379> hgetall hashkey2
1) "name"
2) "jack"
hlen hashkey
  • 作用:返回hash中键值对的数量
127.0.0.1:6379> hgetall hashkey
1) "name"
2) "tom"
3) "age"
4) "20"
5) "address"
6) "BeiJing"
7) "birthday"
8) "2000-01-01"
127.0.0.1:6379> hlen hashkey
(integer) 4
hexists hashkey key
  • 作用:判断key是否存在,存在返回1,不存在返回0
127.0.0.1:6379> hgetall hashkey
1) "name"
2) "tom"
3) "age"
4) "20"
5) "address"
6) "BeiJing"
7) "birthday"
8) "2000-01-01"
127.0.0.1:6379> hlen hashkey
(integer) 4
127.0.0.1:6379> hexists hashkey name
(integer) 1
127.0.0.1:6379> hexists hashkey sex
(integer) 0
hkeyshvals
  • hkeys hashkey // 返回所有的key值
  • hvals hashkey // 返回所有的value
  • 如果value有相同的也不会去重;
127.0.0.1:6379> hkeys hashkey
1) "name"
2) "age"
3) "address"
4) "birthday"
127.0.0.1:6379> hvals hashkey
1) "tom"
2) "20"
3) "BeiJing"
4) "2000-01-01"

127.0.0.1:6379> hset hashkey info BeiJing
(integer) 1
127.0.0.1:6379> hvals hashkey
1) "tom"
2) "20"
3) "BeiJing"
4) "2000-01-01"
5) "BeiJing"
hincrbyhincrbyfloat
  • hincrby hashkey key num // 对hash中key对应的value值加num
  • hincrbyfloat hashkey key float // 添加小数
  • 如果key对应的value不是数字,则返回错误
127.0.0.1:6379> hget hashkey age
"25"
127.0.0.1:6379> hincrby hashkey age 5
(integer) 30
127.0.0.1:6379> hincrby hashkey name 5
(error) ERR hash value is not an integer

127.0.0.1:6379> hset hashkey score 90
(integer) 1
127.0.0.1:6379> hget hashkey score
"90"
127.0.0.1:6379> hincrbyfloat hashkey score 2.5
"92.5"
hsetnx hashkey key value
  • 作用:如果hash中不存在key则添加key-value对,如果存在则不添加;
127.0.0.1:6379> hget hashkey name
"tom"
127.0.0.1:6379> hget hashkey work
(nil)
127.0.0.1:6379> hsetnx hashkey name xxx
(integer) 0
127.0.0.1:6379> hget hashkey name
"tom"
127.0.0.1:6379> hsetnx hashkey work IT
(integer) 1
127.0.0.1:6379> hget hashkey work
"IT"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值