- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(Redis详解
11.1.1 什么是Redis2012-12-14 16:48 刘鑫 人民邮电出版社?我要评论(0)《高性能网站构建实战》第11章 高性能的key-value数据库Redis上一章我们介绍了常用的数据缓存开源软件Memcache,该软件常用在要求快速、大量显示数据的环境中,比如需要时时显示数据的请求页面。Memcache 可以池的方式进行扩展来存储更多的数据,经过二次开发,其持久化特性可以保证数据不会因为突发事故而丢失。本章介绍Redis数据库及其具体应用。11.1? Redis简介11.1.1? 什么是RedisRedis是一种高性能的key-value数据库。和Memcached类似,不过Redis支持存储的value类型更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove、取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与Memcached一样,为了保证效率,Redis的数据都缓存在内存中。但是Redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步;而默认情况下,Memcache不会把数据写入文件中。11.1.2 Redis的数据结构11.1.2? Redis的数据结构下面分别介绍Redis支持的4种数据类型。string(字符串)?string是最简单的类型,一个key对应一个value,支持的操作与Memcached支持的操作类似,但功能更加丰富。Redis采用sdshdr和sds结构封装字符串,字符串相关的操作在源文件sds.h/sds.c中实现。sdshdr数据结构定义如下:typedef?char?*sds; ?struct?sdshdr?{ ?long?len; ?long?free; ?char?buf[]; ?}; ?list(双向链表)list是一个列表结构,主要功能是push、pop、获取一个范围的所有值等。操作中的key可以理解为链表的名字。对list的定义和实现在源文件adlist.h/adlist.c中进行,相关的数据结构定义如下: //?list迭代器 ?typedef?struct?listIter?{ ?listNode?*next; ?int?direction; ?}?listIter; ?//?list数据结构 ?typedef?struct?list?{ ?listNode?*head; ?listNode?*tail; ?void?*(*dup)(void?*ptr); ?void?(*free)(void?*ptr); ?int?(*match)(void?*ptr,?void?*key); ?unsigned?int?len; ?listIter?iter; ?}?list; ?Setc(集合) ?set是集合,与数学中的集合概念相似,相关操作包括添加删除元素、对多个集合求交并差等。操作中的key可以理解为集合的名字。在源文件dict.h/dict.c中实现对hashtable的操作,数据结构定义如下://?dict中的元素项 ?typedef?struct?dictEntry?{ ?void?*key; ?void?*val; ?struct?dictEntry?*next; ?}?dictEntry; ?//?dict相关配置函数 ?typedef?struct?dictType?{ ?unsigned?int?(*hashFunction)(const?void?*key); ?void?*(*keyDup)(void?*privdata,?const?void?*key); ?void?*(*valDup)(void?*privdata,?const?void?*obj); ?int?(*keyCompare)(void?*privdata,?const?void?*key1,?const?void?*key2); ?void?(*keyDestructor)(void?*privdata,?void?*key); ?void?(*valDestructor)(void?*privdata,?void?*obj); ?}?dictType; ?//?dict定义 ?typedef?struct?dict?{ ?dictEntry?**table; ?dictType?*type; ?unsigned?long?size; ?unsigned?long?sizemask; ?unsigned?long?used; ?void?*privdata;
您可能关注的文档
最近下载
- 汽车底盘构造与维修教案.doc VIP
- 人教版七年级上册数学期末动点问题压轴题专题训练.docx VIP
- GB50173-2014《电气装置安装工程66KV及以下架空电力线路施工及验收规范》.docx VIP
- 1.1 空间向量及其运算(大单元教学设计) 高二数学(人教A版选择性必修第一册).docx
- 2024安徽职业技术学院招聘笔试真题含答案详解.docx VIP
- 山洋伺服电机rs2快速入门手册.pdf VIP
- 生活中的方向第1课时教室里的方向(课件)数学苏教版二年级上册(新教材).pptx VIP
- 宫殿记忆法:提升术.pptx VIP
- 【小学英语】3-6年级整个英语语法体系11页.pdf VIP
- 2025中级经济师《经济基础知识》三色笔记.pdf VIP
文档评论(0)