·一.Redis HyperLogLog
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。
1.1.什么是基数?
比如数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。
1.2.Redis HyperLogLog 命令
PFADD key element [element ...] 将所有元素参数添加到 HyperLogLog 数据结构中。
PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。
PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog ,合 并后的 HyperLogLog 的基数估算值是通过对所有 给定 HyperLogLog 进行并集计算得出的。
二.Redis 发布订阅
是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。
Redis 客户端可以订阅任意数量的频道。
2.1.简单使用
- 开启本地 Redis 服务,开启两个 redis-cli 客户端。
- 在第一个 redis-cli 客户端 输入 SUBSCRIBE runoobChat,意思是订阅
runoobChat
频道。
- 在第二个 redis-cli 客户端输入 PUBLISH runoobChat "Redis PUBLISH test" 往 runoobChat 频道发送消息,这个时候在第一个 redis-cli 客户端就会看到由第二个 redis-cli 客户端发送的测试消息。
2.2.Redis 发布订阅命令
PSUBSCRIBE pattern [pattern ...] 命令订阅一个或多个符合给定模式的频道。
redis 127.0.0.1:6379> PSUBSCRIBE mychannel
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "mychannel"
3) (integer) 1
redis 127.0.0.1:6379> PUBLISH mychannel "hello, i m here"
(integer) 1
PUBLISH channel message 用于将信息发送到指定的频道。
PUBSUB <subcommand> [argument [argument ...]] 用于查看订阅与发布系统状态,它由数个不同格式的子命令组成。
PUNSUBSCRIBE [pattern [pattern ...]] 用于退订所有给定模式的频道。
三.Redis 事务
事务可以一次执行多个命令, 并且带有以下三个重要的保证:
- 批量操作在发送 EXEC 命令前被放入队列缓存。
- 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
- 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
3.1Redis 事务命令
Multi 用于标记一个事务块的开始。
redis 127.0.0.1:7000> multi
OK
redis 127.0.0.1:7000> set a aaa
QUEUED
redis 127.0.0.1:7000> set b bbb
QUEUED
redis 127.0.0.1:7000> exec
1) OK
2) OK
3) OK
WATCH key [key ...] 用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他 命令所改动,那么事务将被打断
UNWATCH 用于取消 WATCH 命令对所有 key 的监视。
Exec 用于执行所有事务块内的命令。
DISCARD 用于取消事务,放弃执行事务块内的所有命令。
四.Redis 连接
主要是用于连接 redis 服务。
4.1Redis 连接命令
redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG
SELECT index 用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值
PING 使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。
QUIT 于关闭与当前客户端与redis服务的连接。
ECHO message 用于打印给定的字符串。