Redis基本语法使用教程

1460 字
7 分钟
Redis基本语法使用教程

常用命令#

字符串String#

set k1 v1 设置k1的值为v1

get k1 获取k1的值

del k1 删除k1

exists k1 判断k1是否存在

keys *me 查找me结尾的key是否存在

clear 清空控制台

flushall 清除所有内容

启动redis-cli时增加--raw参数可以原始数据显示,用于中文

TTL(Time to Live) k1 获取k1的生存周期

expire k1 5 5秒后k1失效被清除

setex k1 5 hello 设置k1的值为hello且5秒后过期

setnx k1 hello 当k1不存在时才设置k1为hello

列表List#

lpush Quisper a 列表Quisper头部插入元素

rpush Quisper b 列表Quisper尾部插入元素

lpop Quisper 列表Quisper头部弹出元素

rpop Quisper 列表Quisper尾部弹出元素

lrange Quisper 0 -1 列出列表Quisper指定范围内的元素,-1表示末尾

llen Quisper 获取列表Quisper元素个数

ltrim Quisper 1 3 删除列表Quisper指定范围(1,3)外的元素

集合Set#

sadd Quisper v1 集合Quisper添加元素v1

smembers Quisper 查看集合Quisper中所有元素

sismember Quisper 查看元素是否在集合Quisper中

srem Quisper v1 删除集合Quisper中的元素v1

有序集合SortedSet#

zadd Quisper v1 100 集合Quisper添加元素v1:100

zrange Quisper 0 -1 查看集合Quisper从0到末尾的所有元素,添加WITHSCORES参数可以输入对应的分数

zscore Quisper v1 查看集合Quisper中元素v1的分数

zrank Quisper v1 查看集合Quisper中元素v1的排名

zrevrank Quisper v1 反转查看集合Quisper中元素v1的排名

zrem Quisper v1 删除集合Quisper中元素v1

哈希Hash#

hset person name Quisper 设置person的姓名键值对

hget person name 获取person的name的值

hgetall person 获取person的所有键值对

hdel person name 删除person的键值对name

hexists person name 判断person的键值对name是否存在

hkeys person 获取person的所有键名

hlen person 获取person的键值对的数量

订阅模式#

subscribe channel1 订阅频道channel1

publish channel1 Quisper 在channel1中发布消息Quisper

消息队列Strem#

xadd 消息队列名 * 键值对: 添加消息,*表示自动生成消息ID

xlen 消息队列名: 获取消息队列名的数量

xrange 消息队列名 - + :获取消息的详细内容

xdel 消息队列名 消息ID: 删除消息

xtrim 消息队列名 MAXLEN 0: 删除所有消息

xread count 2 block 1000 streams 消息队列名 0: 从0位置开始读取消息队列名2条消息,没有则阻塞1000毫秒,使用$则是当前位置

xgroup create Quisper group1 0: 创建一个id为0的消费者组group1去消费Quisper消息队列

xgroup info Quisper:查看该消息队列中的所有信息,包括消费者组等

xgroup createconsumer Quisper group1 consumer1:在消费者组group1中创建消费者consumer1去消费消息队列Quisper

xreadgroup group group1 consumer1 count 2 block 1000 streams Quisper >:消费者组group1中的消费者consumer1从消息队列Quisper读取最新的2条消息,没有则阻塞1000毫秒

地理空间Geospatial#

geoadd city 116.12 39.41412 beijing 添加城市beijing的经纬度

geopos city beijing 获取beijing的经纬度

geodist city beijing shanghai 计算beijing和shanghai之间的直线距离,添加参数KM换算成千米

geosearch city frommember shanghai byradius 300 KM 搜索以shanghai为中心,300千米为半径的圆形范围内的城市

HyperLogLog#

基数统计算法,基数:非重复元素个数

pfadd course git docker redis 给course添加git、docker、redis元素

pfcount course 查看course基数

pfmerge result course course2 合并course和course2并把结果放到result中去

位图Bitmap#

setbit dianzan 0 1 在dianzan的0位置上设置为1

getbit dianzan 0 获取dianzan的0位置上的值

set dianzan “\xF0” 设置dianzan的前八位为11110000

bitcount dianzan 获取dianzan中值为1的个数

bitpos dianzan 1 获取dianzan中第一个出现1的位置,也可以换成0

位域Bitfield#

bitfield player:1 set u8 #0 1 配置玩家player的id是1,等级是u8类型,放在位域的第一个位置,值为1

bitfield player:1 get u8 #0 1 获取玩家player:1的等级

bitfield player:1 incrby u32 #1 100 玩家player:1的金钱(第二个位置)增加100

事务#

相当于批量指令(感觉不算事务啊),不会对结果进行校验回滚。使用multi开启,使用exec/discard结束

持久化#

RDB方式 Redis Database#

多用于备份

配置文件:save 3600 100 3600秒内有100次修改就写入快照

手动命令行:save 直接保存

创建子进程进行保存:bgsave

AOF方式 Apped Only File#

将命令写入文件从而重启时重新执行命令,恢复数据库,通过配置文件写入appendonly yes开启

主从复制#

只能主节点复制到从节点,主节点负责写,有变化后异步发送给从节点。

配置只需要修改从节点配置即可,修改从节点配置文件redis_6380.conf的端口号port以及进程ID配置文件pidfile、从数据库名dbfilename、主节点服务replicaof localhost 6379

连接从节点后可以使用info replication命令查看节点信息

哨兵模式#

功能#

独立运行Redis集群中,监控各节点是否运行正常。

监控:通过不断发送命令来检查各个Redis节点是否正常

通知:如果某个节点出现问题,通过发布订阅模式来通知其他节点

自动故障转移:当主节点出现问题时,哨兵将进行自动故障转移操作,将其中一个从节点提升为主节点,再将其他从节点指向新的主节点

启动方式#

新增配置文件:sentinel.conf

增加下列配置信息:

sentinel monitor master 127.0.0.1 1
#master主节点名称,127.0.0.1为主节点ip地址,1为只需要一个哨兵节点同意就可以转移

命令行执行:redis-sentinel sentinel.conf启动哨兵节点

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Redis基本语法使用教程
https://blog.civer.cn/posts/redis-basic-syntax-guide/
作者
Quisper
发布于
2025-07-25
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-07-25,距今已过 228 天

部分内容可能已过时

Profile Image of the Author
Quisper
Hello, I'm Quisper.
公告
溯万物之源起,记一叶之清秋。欢迎来到我的博客!很高兴认识你👋
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
8
分类
2
标签
14
总字数
10,622
运行时长
0
最后活动
0 天前
总访问量
0
总访客数
0

目录