- 3
- 0
- 约3.22万字
- 约 59页
- 2017-01-01 发布于北京
- 举报
《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; ?}?d
您可能关注的文档
最近下载
- 浙江省金华市2023年中考数学试卷 .pdf VIP
- 英语专四新题型选词填空做题技巧.ppt VIP
- 2026年广东省普通高中学业水平合格性考试英语试卷含答案.pdf VIP
- 英菲尼迪QX70说明书|Infiniti QX70 Owner's Manual.pdf
- 光合作用的原理和应用课件【新教材】人教版高中生物必修一.pptx VIP
- 概率论与数理统计教学教案.doc VIP
- 统编版(2024)七年级上册道德与法治期末复习模拟试卷 3套(含答案).pdf
- 倾斜摄影三维建模项目设计方案.pdf VIP
- 脑胶质瘤诊疗规范2025年版.docx VIP
- 2025年海南省中考化学真题(含答案).pdf
原创力文档

文档评论(0)