Redis 常用命令

  1. redis 命令官网

https://redis.io/docs/latest/commands/

  1. 在 redis-cli 中使用 help 命令

查看

help @string

基础命令
keys * # * 代表通配符

set key value # 设置键值对

del key # 删除键

expire key 时间 # 给键设置时间

-2 代表时间到期了, -1 代表永不过期

ttl key # 查看键剩余的时间

exists key # 查看键是否存在

String 类型
setex key 秒数 value

set key value ex 秒数

设置秒数

setnx key value

set key value nx

如果不存在才进行存储,存在不处理

incrby key 数字

增减(value为数字)

incr # 自增1

incrbyfloat key 数值 # 小数自增

mset k v k v
mget k v k v

批量设置批量取

hash 类型
hsetnx 名称 key value

判断是否存在

hgetall 名称

获取所有

hkeys 名称

获取所有键名

hvals 名称

获取所有值

hmset 名称 key value
hmget 名称 key

批量设置批量获取

list 类型
lpush key value
rpush key value

左右推入

lpop key value
rpop key value

左右取

lrange key 起 始

按索引取部分

blpop key 时间
brpop key 时间

阻塞取出

set 类型
sadd key member

添加

srem key member

移除

scard key

返回元素个数

sismember key member

判断是否是成员

smembers

获取set中的所有元素

sinter key key

交集

sdiff key key

差集

sunion key key

并集

sortedset 类型
zadd key score member

添加

zrem key member

移除

zscore key member

获取指定分数

zrank key member

获取指定元素的排名

zcard key

获取所有元素个数

zcount key 数字 数字

统计分数范围内的元素的个数

zincrby key 数字 member

给 member 增加指定步长

zrange key 数字 数字

获取排名范围内的元素

zrangebyscore key 数字 数字

获取分数范围内的元素

zdiff,zinter,zunion

交并补

  1. 介绍
    Redis 中的 list 相当于顺序表,并且内部更接近于“双端队列”,所以也支持头插和尾插的操作,可以当做队列或者栈来使用,同时也存在下标的概念,不过和 Java 中的下标不同,Redis 支持负数下标,-1 表示倒数第一个元素,-2 表示倒数第二个元素,和 Java 中的 List 相同的是,列表中的元素是有序的,并且允许重复

  2. 常用命令
    命令

介绍

时间

rpush key value [value …]

将一个或多个值插入到列表 key 的表尾(最右边)

O (k),k 是元素个数

lpush key value [value …]

将一个或多个值插入到列表 key 的表头(最左边)

O (k),k 是元素个数

linsert key before

在列表的元素 pivot 之前插入元素 value

O (n),n 是 pivot 距离头的距离

after pivot value

在列表的元素 pivot 之后插入元素 value

O (n),n 是 pivot 距离头的距离

lrange key start end

获取列表指定范围内的元素

O (s+n),s 是 start 偏移量,n 是 start 到 end 的范围。

lindex key index

通过索引获取列表中的元素

O (n),n 是索引的偏移量

llen key

获取列表的长度

O (1)

lpop key

移除并返回列表 key 的头元素

O (1)

rpop key

移除并返回列表 key 的尾元素

O (1)

lrem key count value

count 大于 0 时,从左开始搜索,小于 0 时从右开始搜索,删除count 个值等于 value 的元素

O (k),k 是元素个数

ltrim key start end

保留 key 对应列表中指定区间 [start, end] 的元素

O (k),k 是元素个数

lset key index value

将列表 key 下标为 index 的元素的值设置为 value

O (n),n 是索引的偏移量。

blpop

lpop 的阻塞版本

O (1)

brpop

rpop 的阻塞版本

O (1)

  1. 内部编码
    在 Redis 3.2 之前主要采用linkedlist和ziplist,3.2 之后主要采用quicklist

linkedlist:双向链表

ziplist:经过特殊编码的连续内存块的顺序存储结构,它将多个元素紧凑地存储在一起,以节省内存空间

quicklist:它是一个双向链表,每个节点是一个 ziplist

  1. 应用场景
    消息队列
    可以使用 lpush + brpop 来实现生产者-消费者模型队列

最新消息列表
用于展示最新的一些信息,如社交媒体平台上用户的最新动态、新闻网站的最新消息等,每当有新消息产生时,使用rpush命令将消息添加到 List 的尾部。要获取最新消息,通过lrange命令并设置合适的参数来获取 List 尾部的若干条消息。比如,在一个微博系统中,用户发布的微博可以存储在一个 List 结构中,通过获取 List 的尾部消息来展示用户关注的人发布的最新微博,可以方便地控制显示的消息数量,并且按照消息的发布顺序进行存储和展示,易于实现分页功能,以展示更多的消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值