Redis基础入门_perl


什么是 Redis

​Redis(Remote Dictionary Server)​​​,即远程字典服务,是一个开源的使用​​C​​​语言编写、支持网络、可基于内存亦可持久化的日志型、​​Key-Value​​​数据库,并提供多种语言的​​API​​。

Redis 实践

Redis 安装

​yum install redis​

Redis 配置

修改​​/etc/redis.conf​​ 即可。

Redis 启动

进程方式

​nohup redis-server > redis.log 2>&1 &​

守护进程方式

修改​​/etc/redis.conf​​​ 中的 ​​daemonize​​​ 为 ​​yes​​​ 后,以 ​​redis-server​​ 方式启动。

Redis 的数据类型和基础操作


类型

添加

查询

删除

最大容量

备注

String

set k v

get k

del k

一个键最大能存储 512MB

重复添加会覆盖历史数据

Hash

hmset k f1 v1 f2 v2

hmget k f1

del k

每个 hash 可以存储 2^32-1 个键值对(大约 43 亿)

重复添加会覆盖历史数据

List

lpush k v1 v2

lrange k 0 10

del k

每个 List 可以存储 2^32-1 个元素(大约 43 亿)

列表内数据可重复,按照插入顺序排序

Set

sadd k v1 v2

smembers k

del k

每个 Set 可以存储 2^32-1 个元素(大约 43 亿)

无序(通常按照插入顺序排序),集合内数据不可重复,重复添加无效,集合基于 Hash 实现,增删查复杂度为 O(1)

Zset

zadd k s1 v1 s2 v2

zrangebyscore k 0 10(仅展示 0 到 10 分的值)zrange k 0 10(仅展示前 10 个

del k

每个 Zset 可以存储 2^32-1 个元素(大约 43 亿)

按照分数顺序排序(分数约小越靠前),其余属性类 Set

Redis-cli 中怎么展示中文

​redis-cli --raw​​ 以这种方式启动即可

连接远程 Redis 服务

​redis-cli -h host -p port -a password​

HyperLoglog&使用场景

​HyperLoglog​​​ 是用来做基数统计的算法(非 ​​redis​​ 独有),其得益于优秀的算法可以以很小的内存计算出大数据的基数。对于相同的元素会去重,计算出的结果为近似结果,在大数据场景下我们可以接受这个误差,因为其拥有良好的性能。

pfadd 添加

# pfadd添加
127.0.0.1:6379> pfadd kk 1 2 1 3 4 4
1
127.0.0.1:6379> pfcount kk
4

以上,​​1 2 1 3 4 4​​​ 这几个元素中,去重后就剩下 ​​4​​​ 个唯一的元素,所以在对其进行基数统计的时候,结果为 ​​4​​。

pfmerge 合并

对于两个 ​​HLL​​ 对象,我们可以将其合并,结果会取他们的并集。

# pfmerge合并
127.0.0.1:6379> pfadd qq 5 6 5 7 1
1
127.0.0.1:6379> pfmerge res kk qq
OK
127.0.0.1:6379> pfcount res
7

以上,​qq​​ 经过 ​​HLL​​​ 算法后有 ​​3​​​ 个元素,和 ​​kk​​​ 的 ​​4​​​ 个基数元素合并后将会有 ​​7​​ 个基数元素,经实践,结果无误。

使用场景

通常 ​​HLL​​​ 用于全球注册用户统计,页面实时 ​​UV​​,在线用户数等等。