1 什么是Redis?
redis是用c语言开发的一款高性能的键值非关系型数据库。其可以通过一些键值类型来处理数据。
2 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等都是Redis的用户。
VMware公司从2010年开始赞助Redis的开发,Salvatore Sanfilippo和Pieter Noordhuis也分别在3月和5月加入VMware,全职开发Redis。
3 Redis的使用场景
3.1 高并发,高访问的分布式缓存,用来减轻数据库的压力;
4 怎么使用Redis
redis主要就是使用命令来进行操作,java端在代码中可以使用Jedis来操作redis服务器redis数据类型
字符串String
列表list redis中使用的是双向循环链表来实现的list,在redis中更像栈
散列Hash 一般应用于将redis作为分布式缓存,存储数据库中的数据对象
集合set set中数据是无序的并且不允许重复
有序集合zset redis会根据分数自动排序,这里可以使用在学生成绩排序, 或者是手机应用商店流行软件排名等 需求中
5 redis持久化方案
rdb:可以设置间隔多长时间保存一次(Redis不用任何配置默认的持久化方案)有点:让redis的数据存取速度变快
缺点:服务器断电时会丢失部分数据(数据的完整性得不到保证)
aof:可以设置实时保存
优点:持久化良好,能包装数据的完整性
缺点:大大降低了redis系统的存取速度
6 Redis的主从复制
这里使用了心跳检测机制,主从复制必须使用rdb持久化方式从服务器一般是只读的,保证主服务器和从服务器的数据一致性