Redis数据库
一.Redis数据库介绍
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。从盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
Redis中文官网:http://www.redis.cn/
二.Redis服务器搭建
详细搭建过程: http://www.open-open.com/lib/view/open1409296925510.html
1、内容:
安装、redis.conf文件配置、启动redis实例、设置主从结构、Jedis客户端(通过java操作Redis数据库)的使用、集群。
2、注意问题:
1)安装问题,会出现gcc指令not found 的问题,运行yum install gcc,即可安装。
2)启动问题,直接使用redis-server指令,运行的redis实例为默认的redis.conf配置;要想使用修改后的redis.conf,在redis.server指令后面加上配置文件所在路径,如./redis-server redis.conf。
3)jedis客户端jar包见附件。
4)Redis 2.8.17是目前最新的稳定版本,该稳定版本里还没有集成分布式功能,最新开发版Redis 3.0。
三.Redis数据库发展现状
1、 实际使用案例
1)新浪微博Redis的部署:
http://tech.it168.com/a2011/0815/1232/000001232720_1.shtml
2) 国内外三个不同领域巨头分享的Redis实战经验及使用场景
http://www.csdn.net/article/2013-10-07/2817107-three-giant-share-redis-experience/2
2、 优势劣势
Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过10万次读写操作,是我知道的性能最快的Key-Value DB。
Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存List链表和Set集合的数据结构,而且还支持对List进行各种操作,例如从List两端push和pop数据,取List区间,排序等等,对Set支持各种集合的并集交集操作,此外单个value的最大限制是1GB,不像memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能,比方说用他的List来做FIFO双向链表,实现一个轻量级的高性能消息队列服务,用他的Set可以做高性能的tag系统等等。另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一个功能加强版的memcached来用。
Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,要依赖客户端来实现分布式读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。目前使用Redis的网站有 github,Engine Yard、新浪微博。
附录:
Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式等)
http://itindex.net/detail/50647-redis-java-%E5%AE%A2%E6%88%B7%E7%AB%AF
Redis Cluster集群搭建方法简介
http://blog.sina.com.cn/s/blog_48c95a190101dhe9.html
Redis作者谈Redis应用场景
http://blog.nosqlfan.com/html/2235.html?ref=rediszt
redis 的持久化以及灾难恢复模拟
http://blog.csdn.net/zq9017197/article/details/17357219
Redis的复制及Redis优缺点和集群搭建
http://www.360doc.com/content/13/1125/09/10946597_331963687.shtml
Redis几个认识误区
http://jingyan.baidu.com/article/3c343ff72f4dc60d36796356.html
数据库比较
http://blog.csdn.net/blackcomet/article/details/40349457