网站建设创业计划书模板范文,广州新建站,苏州市住房和城乡建设局网站,做外贸 英文网站http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求#xff0c;并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。 1.1历史和发展 2008年#xff0c;意…http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。 1.1历史和发展 2008年意大利一家创业公司Merzia的创始人Salvatore Sanfilippo为了避免MySQL的低性能亲自定做一个数据库并于2009年开发完成这个就是redis。 短短几年用户数据量猛增。国内如新浪微博、街旁和知乎等国外如GitHub、暴雪等都是Redis的用户。 Redis的代码托管在GitHub上开发十分活跃。 1.2特性 1.2.1存储结构 Redis是REmote DIctionary Server远程字典服务器的缩写他以字典结构存储数据并允许其他应用通过TCP协议读写字典里的内容Redis字典中的键值除了可以是字符串外还可以是其他数据类型比如 字符串类型 散列类型 列表类型 集合类型 有序集合类型 这种字典形式的存储结构与常见的mysql等关系数据库的二维表形式的存储结构有很大的差异。 1支持开发者可以将程序中的数据直接映射到Redis中 2对不同数据类型提供了非常方便的操作方式如使用集合类型存储文章标签Redis可以对标签进行如交集、并集这样的集合运算操作。 1.2.2内存存储与持久化 Redis数据库中的所有数据都存储在内存中由于内存的读写速度远快于硬盘性能明显优势无时延情况下Redis可以在一秒内读写超过100000个键值。 将数据存储在内存中也有问题程序退出后内存中的数据会丢失但是Redis提供了对持久化的支持即可以将内存中的数据异步写入到硬盘中同时不影响继续提供服务。 1.2.3功能丰富 用作缓存、队列系统等。 Redis可以为每个键设置生存时间TTL生存时间到期后键会自动被删除这一功能配合出色的性能让Redis可以作为缓存系统来使用成为了缓存系统Memcached的有力竞争者。 性能上Redis是单线程模型而Memcached支持多线程多核服务器上后者性能好点。 但是Redis大多数情况下足够优异都不会成为瓶颈如果需要用到高级的数据类型或者持久化功能等Redis会更好点。 作为缓存系统Redis还可以限定数据占用的最大内存空间在数据达到空间限制后可以按照一定的规则自动淘汰不需要的键。 除此之外Redis的列表类型键可以实现队列并且支持阻塞式读取可以很容易实现一个高性能的优先队列。同时在更高层面上Redis还支持“发布 /订阅”的消息模式可以基于此构建聊天室等系统。 1.2.4简单稳定 Redis提供一百多中命令但是常用的就十几种。 Redis提供了几十种不同编程语言的客户端库很好的封装了Redis的命令使得在程序中与Redis交互变得更容易。 Redis使用C语言开发代码量只有30000多行易懂易修改好维护。 Redis是开源的稳定版本非常可靠。