Redis——Redis进阶命令集详解(下)
本文详细介绍了Redis一些复杂命令的使用,包括Redis事务相关命令,如MULTI
、EXEC
、DISCARD
和 WATCH
,发布订阅操作命令,如PUBLISH 、SUBSCRIBE 、PSUBSCRIBE ,BitMap操作命令,如SETBIT、GETBIT、BITCOUNT、BITOP,HyperLogLog 操作命令PFADD、PFCOUNT、PFMERGE,GEO命令如GEOADD、GEODIST、GEORADIUS,以及性能测试命令redis-benchmark等等
本文目录
- 一、Redis 事务
- 二、发布订阅操作命令
- 三、BitMap 操作命令
- 四、HyperLogLog 操作命令
- 五、Geo操作命令
- 六、benchmark 性能测试
一、Redis 事务
Redis 事务通过 MULTI
、EXEC
、DISCARD
和 WATCH
命令实现。事务可以将多个命令打包,按顺序执行,并且在执行过程中不会被其他客户端的命令打断。
MULTI
:开启一个事务。
EXEC
:执行事务中的所有命令
DISCARD
: 取消事务。
WATCH
:用于监视一个或多个键,若在事务执行前这些键被其他客户端修改,则事务会被取消。
MULTI
SET name r
GET name
EXEC
以上命令将 SET
和 GET
命令打包成一个事务执行。
二、发布订阅操作命令
Redis 的发布-订阅功能允许客户端订阅一个或多个频道,当有其他客户端向这些频道发布消息时,订阅者会收到相应的消息。
PUBLISH <channel> <message>
:向指定的频道 channel
发布一条消息 message
。
SUBSCRIBE <channel> [channel ...]
:订阅一个或多个频道。
PSUBSCRIBE <pattern> [pattern ...]
:订阅符合指定模式的频道。
三、BitMap 操作命令
-
设置与获取位值
SETBIT <key> <offset> <value>
:将键key
对应的 BitMap 中偏移量为offset
的位设置为value
(0 或 1)。GETBIT <key> <offset>
:获取键key
对应的 BitMap 中偏移量为offset
的位的值。
-
位统计与操作
BITCOUNT <key> [start end]
:统计键key
对应的 BitMap 中值为 1 的位的数量,可指定统计的字节范围。BITOP <operation> <destkey> <key1> [key2 ...]
:对多个 BitMap 进行位运算(如 AND、OR、XOR、NOT),结果存储在destkey
中。
-
BitMap 应用场景
BitMap 是一种以位为单位进行存储的数据结构,每个位只能存储 0 或 1。在 Redis 中,BitMap 可以使用字符串类型来实现。
应用场景
- 用户签到:可以使用一个 BitMap 来记录用户的签到情况,每个位对应一天,签到则将该位置为 1,未签到则为 0。
- 在线用户统计:通过 BitMap 记录每个用户的在线状态,统计在线用户数量。
四、HyperLogLog 操作命令
HyperLogLog 是一种用于估算集合中唯一元素数量的概率性数据结构,它在占用极小内存的情况下可以对大量数据的基数进行近似统计。
- 命令
PFADD <key> <element> [element ...]
:向 HyperLogLog 中添加一个或多个元素。PFCOUNT <key> [key ...]
:估算 HyperLogLog 中唯一元素的数量,可同时对多个 HyperLogLog 进行统计。PFMERGE <destkey> <sourcekey1> [sourcekey2 ...]
:将多个 HyperLogLog 合并为一个,结果存储在destkey
中。
五、Geo操作命令
Redis 的 Geospatial 功能用于存储和处理地理空间数据,如地理位置的经纬度信息。基于有序集合(ZSet)实现,通过将经纬度转换为一个分数进行存储。
- 命令
GEOADD <key> <longitude> <latitude> <member> [longitude latitude member ...]
:向键key
对应的地理空间集合中添加一个或多个地理位置信息。GEODIST <key> <member1> <member2> [unit]
:计算键key
对应的地理空间集合中两个成员之间的距离,可指定单位(如 m、km、mi、ft)。GEORADIUS <key> <longitude> <latitude> <radius> <unit> [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
:查询键key
对应的地理空间集合中距离指定经纬度radius
范围内的成员,可选择返回成员的经纬度、距离等信息。
六、benchmark 性能测试
Redis 自带 redis - benchmark
工具,可用于对 Redis 进行性能测试。能模拟多个客户端同时向 Redis 服务器发送请求,测试 Redis 在不同场景下的性能指标,如 QPS(每秒查询率)、响应时间等。也可通过指定不同的参数,如客户端数量、请求数量、请求类型等,来模拟不同的业务场景,评估 Redis 在高并发情况下的性能表现。
- 命令
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
此命令表示使用 100 个客户端同时向 127.0.0.1:6379
的 Redis 服务器发送 100000 个请求进行性能测试。
← 上一篇 MySQL——表添加索引多种方式 | 记得点赞、关注、收藏哦! | 下一篇 JUC小册——公平锁和非公平锁 → |