目录
一、Redis概述
2008年,意大利的一家创业公司Merzia推出了一款基于MySQL的网站实时统计系统LLOOGG,然而没过多久该公司的创始人 Salvatore Sanfilippo便开始对MySQL的性能感到失望,于是他决定亲自为LLOOGG量身定做一个数据库,并于2009年开发完成,这个数据库就是Redis。不过Salvatore Sanfilippo并不满足只将Redis用于LLOOGG这一款产品,而是希望更多的人使用它,于是在同一年Salvatore Sanfilippo将Redis开源发布,并开始和Redis的另一名主要的代码贡献者Pieter Noordhuis一起继续着Redis的开发,直到今天。
Salvatore Sanfilippo自己也没有想到,短短的几年时间,Redis就拥有了庞大的用户群体。Hacker News在2012年发布了一份数据库的使用情况调查,结果显示有近12%的公司在使用Redis。国内如新浪微博、街旁网、知乎,国外如GitHub、Stack Overflow、Flickr、暴雪和Instagram,都是Redis的用户。
VMware公司从2010年开始赞助Redis的开发, Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。【本部分内容取自《REDIS入门指南》】
Redis(REmote DIctionary Server 远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化。是当前比较热门的NOSQL数据库之一,也被人们称之为数据机构服务器。
他提供了很多键值数据类型以用来适应不同场景下的存储需求,在目前Redis所支持的数据类型包括:
字符串类型
散列类型
列表类型
集合类型
有序集合类型
坐标类型
二、Redis的作用
内存存储和持久化:redis支持异步将内存中的数据写入到磁盘中,同时不影响继续服务
取最新N个数据的操作,可以将排行或者指定信息保存在Redis集合容器内
模拟类似于HttpSession(会话对象)这种需要设定过期时间的功能
定时器 计数器
消息的订阅和消息的发布(消息队列 主从配置)
三、Redis的特点
性能非常高:Redis读取速度 11W次/s 写入速度 8W次/s
非常丰富的数据类型 :String List Hash Set ZSet等等数据类型操作
原子性:Redis内所有操作都是原子性的,意味着要么成功执行,要么失败完全不执行。单个操作是原子性的,多个操作也支持事务。
数据持久化:可以将内存中的数据保存在磁盘内,重启的时候可以加载进行使用
其他:Redis还支持publish/subscribe 通知,key值生命周期的管理,提供了目前主流编程语言的API接口