Redis笔记整理3

来源:互联网 发布:监控数据恢复多少钱 编辑:程序博客网 时间:2024/05/03 04:29
一、Redis的lists
1.基本含义。
 list在redis中是指linked list而非array,linked list有一个好处就是不管list中的数量,在list的head和tail插入一个元素的时间是一样的。list查找中间元素的速度是比较慢的,而sorted sets则比较快。
2.简单操作:
  增:lpush  rpush  删: lpop rpop ltrim rtrim  查:lrange 
3.应用场景
 记录最新的一些文章或者评论啥的。
 基于生产者消费者模式的进程间通讯。
4.list的阻塞
  有一种情况,基于生产者消费者模式的list,当消费者没有东西可以消费,那么这个时候会采用polling(轮询)的方式进行重新消费,即隔一会儿pop一下取数据,灾难来了,轮询间隔长,那么会有延时,轮询太短,那么会有很多没用的请求执行。    这个 时候阻塞list的命令来了,brpop和blpop,当list为空时阻塞。

5.list的创建和空的list的删除。
所有的aggregate data type的操作都一样,lists,sets,sorted sets,hashes,都是当集合中要添加元素时创建,当集合中元素为空时删除,查看集合元素或者删除时返回的结果就好像是真的有一个对应key的集合存在。原文如下:


二、Redis中的hashes.
1.命令:
hmset hmget hgetall  hset hget hgetall
2.含义:
感觉hash像是java中的一个有不同field的Object,或者一个JSON对象,也像是mysql数据库里的一条记录。
3.demo:

我们可以通过设置不同的key值,实现一个类似于表的结构,例如author:1 ,author:2,author:3 。
4.hash这种结构在内存中是非常高效的。

三、Redis中的Set
1.含义
存储无序的strings集合。
2.操作
有插入,联合,找不不同,去一个随机的元素。

增:sadd  sunionstore 查:smembers  sismember sinter scard srandmember 删:spop 


四、Redis中的Sorted Sets
1.含义
Sorted Sets在结构上像是Set和Hash的混合体,其中的每个元素都有一个floating point value叫做score。他是有序的,他 的顺序首先是由score决定,如果score相同,那么由元素内容的lexicographical 决定。
2.操作
增:zadd  
查:zrange  zrangebyscore  zremrangebyscore  zrank  zremrank zrangebylex
3.


五、Redis中的bitmap
1.bitmap不是个真的数据结构,而是基于针对string的位操作的一个set。string可以512M那么占用的位,512*1024*1024*8=2的32次方个bits.(40个亿)
2.操作:
位操作分为两种:固定时间的单个bit操作 和 针对一组bit的操作。
3.优势
可以做到极限使用空间。一个string可以存储40个亿的bit。例如:512M的内存可以记录40个亿用户的性别。
应用场景:各种实时的分析。存储高校利用空间的boolean值。
4.


六、Redis中的HyperLogLogs
直接贴:

这种HLL结构是用来记录特殊的事务的个数。sets中元素个数的计算,需要用到与元素个数成正比的内存,而用hll可以只用一个常量的空间,最大占用空间为12K.如何做到的?是因为它实际上存储的是一种关于元素的state. 


0 0
原创粉丝点击