一 概述
Redis是目前较为主流的NoSQL数据库,它不仅仅支持简单的key-value类型的数据,同时还提供了String,List,hash,set,zset等数据结构的存储。
二 不同数据类型的CURD操作
1 String
set key value //设置指定key的值,或者将key之前指定的值修改为当前值
get key //获取指定key的值
2 Hash
hset key field value//将哈希表key中的字段field的值设置为value
hget city name//获取哈希表中key字段的值
3 List
LPUSH key value1 //将一个或多个值插入到列表头
LPOP key //移出并获取列表的第一个元素,返回值是移出的元素
4 set
sadd key member1 member2 //向集合中添加一个或者多个成员
spop key //移除并返回集合中的一个随机元素
5 sorted set (zset)
zadd key score member score1 member1 //向有序集合中添加一个或多个成员,或者更新已经存在成员的分数
zcard key //获取有序结合中的成员数
三 Redis中的HyperLogLog
Redis在2.8.9版本中添加了HyperLogLog结构,它是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计数基数所需要的空间总是固定的,并且时很小的。
在Redis中,每个HyperLogLog键只需要花费12KB内存,就可以计算接近2^64个不同元素的基数。这不同于和计数基数时,元素越多耗费内存就越多的集合。但是,因为HyperLogLog只会根据输入元素来计算基数,而不会储存输入元素本身,所以HyperLogLog不能像结合那样,返回输入的各个元素。
补充基数:如数据集{1,3,5,7,5,7,8},那么整个数据集的基数集为{1,3,5,7,8},则基数为5,即不重复的数据的个数。基数估计就是在误差可接受的范围内,快速计算基数。
PFADD key element //添加指定元素到HyperLogLog中
PFCOUNT key //返回给定的HyperLogLog的基数估算值
PFMERGE destkey sourcekey1 sourcekey2