redis常用命令

小豆苗 1年前 ⋅ 880 阅读

连接本地:
redis-cli
连接远端redis:
redis-cli -h host -p port -a password

命令:

  • 键(key)

keys *
注意: 由于redis是单线程的,因此在redis key数量很多的时候禁用该命令,否则容易引起生产应用夯机现象
如果一定要使用,除非能确定数据量不大,或者在一个没有被使用的集群节点上使用

set key value
例如: set test test1

get key
例如: get test

dbsize 键值总数
该命令不会遍历redis, 而是直接获取redis内置的计算总数变量
127.0.0.1:6379> dbsize
(integer) 6

exists key 检查key是否存在

127.0.0.1:6379> exists test
(integer) 1

del key 删除

127.0.0.1:6379> del test
(integer) 1
127.0.0.1:6379> exists test
(integer) 0

expire key seconds 设置过期时间

127.0.0.1:6379> expire test 10
(integer) 1

ttl 获取key剩余过期时间 返回值-1说明没有设置过期时间, -2 则表示过期
127.0.0.1:6379> ttl test
(integer) -2

type key 返回key数据类型

127.0.0.1:6379> type test
string

  • 字符串:

可以应用于 缓存, 计数, 共享session, 限速限制频率等

set key value [EX seconds] [PX milliseconds] [NX|XX]
ex 过期时间,单位秒
px 设置毫秒级国企时间
nx 键必须不存在,才可以成功
xx 键存在才可以成功,用于更新

mset批量设置key

127.0.0.1:6379> mset test1 1 test2 2 test3 3
OK

mget 批量获取值

127.0.0.1:6379> mget test1 test2

“1”
“2”
其中mset mget 批量执行在一定情况下可以显著提升性能,时间复杂度是O(1), 而分开则可能是O(N) 还有更多的网络延迟消耗
但是如果批量的执行量特别大,又可能造成应用夯住, 因此需要合理评估使用

incr 计数
incr count
如果count不存在, 则新建key count 并加1 返回1

自减
decy key

strlen key 获取key值的长度

  • 哈希:

hset key field value

127.0.0.1:6379> hset user tom 111
(integer) 1

hget key field 获取

127.0.0.1:6379> hget user tom
“111”

HDEL key field [field …] 删除

127.0.0.1:6379> HDEL user tom
(integer) 1

hlen 健个数

127.0.0.1:6379> hlen user
(integer) 0

hmset key field value [field value …] 批量设置

127.0.0.1:6379> hmset user tom 111 jim 112
OK

HMGET key field [field …] 批量获取值

127.0.0.1:6379> HMGET user tom jim

“111”
“112”
hkeys 获取keys的值, hvals获取值内容

127.0.0.1:6379> hkeys user

“tom”
“jim”
127.0.0.1:6379> HVALS user
“111”
“112”
hgetall key 获取所有值

127.0.0.1:6379> HGETALL user

“tom”
“111”
“jim”
“112”
列表:

可以用于阻塞消息队列

RPUSH key value [value …]

lrange key start stop 获取列表

LINDEX key index 获取指定索引下标元素

lpop/ rpop 左弹出, 右弹出值,

LREM key count value 删除指定元素

LSET key index value 修改指定索引下标的元素u

blpop key [key …] timeout
brpop key [key …] timeout

blpop brpop 是lpop和rpop的阻塞版本,防止在其他线程更新或获取值

  • 集合:
    可以适用于tag 标签

SADD key member [member …] 添加元素

SREM key member [member …] 删除元素

SCARD key 计数, 元素个数

SISMEMBER key member 判断值是否存在key中

SRANDMEMBER key [count] 随机返回指定count个元素

spop key 随机弹出值

SMEMBERS key 获取所有元素

sdiff key [key] 比较集合的不同

SINTER key [key …] 求交集

SUNION key [key …] 求并集

  • 计算集合:

ZCARD key
ZCARD testm

  • 计算某个成员的分数:

ZSCORE key member
ZSCORE testm r1

  • 计算成员的排名:

zrank key member

  • 删除成员:

ZREM key member [member …]

增加成员分数
值需要是float类型

ZINCRBY key increment member

其他更全面的命令,可以去官网查找,地址如下:

https://redis.io/commands/


全部评论: 0

    我有话说: