redis是一个分布式存储系统数据库。
特点:1.数据存储在内存
2.支持高并发
3.查询速度快
4.存放数据量大
5.不能进行复杂的条件查询(辅以Real-Time Search Engine(实时搜索引擎)进行复杂条件检索)
redis和memcached的区别
1.redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave同步,而默认情况下mamcached不会把数据写入到文件
redis支持的4中文件类型
1.string(字符串)
string是最简单的类型,一个key对应一个value,支持的操作与memcached支持的类似,但是功能更加丰富。
redis才用sdshdr和sds结构封装字符串,字符串相关的操作在源文件sds.h/sds.c中实现。
2.list(双向链接)
list是一个列表结构,主要功能是push、pop、获取一个范围的所有值等,操作中的key可以理解为链表的名字。
对list的定义和实现在源文件adlist.h/adlist.c中进行。
3.setc(集合)
set是结合,与数学中的集合概念相似,相关操作包括添加删除元素,对多个合集求交并差等。操作中的key可以理解为集合的名字。
在源文件dict.h/dict.c中实现对hashtable的操作。
4.zset(排序set)
zset是set的升级版本,在set的基础上增加了一个顺序属性,这一属性可以指定添加修改元素的时候,每次指定后,zset会自动按新的值调整顺序。zset可被看作有两列数据的mysql表,一列数据存value,另一列数据存顺序。操作中的key可以理解为zset的名字。
redis性能
官方数据指出,set错做每秒钟可进行110000次,Get操作每秒钟可进行81000次。
但是当数据达到GB数据级时,写速度明显下降。
可能是原因是:
1.redis需要将数据同步到磁盘,占用了大量的cpu和内存;
2.key的数量太大,需要重新布局;
3.消息队列中还存在大量请求,致使堵塞。
阅读(2193) | 评论(0) | 转发(0) |