总结一下redis的特点:
1.独特的键值对模型
很多数据库只能处理一种数据结构:
• SQL 数据库 —— 表格
• Memcached —— 键值对数据库,键和值都是字符串
• 文档数据库(CouchDB、MongoDB) ——由 JSON/BSON 组成的文档(document)而一旦数据库提供的数据结构不适合去做某件事的话,程序写起来就会非常地麻烦和不自然。Redis 也是键值对数据库,但和 Memcached不同的是,Redis 的值不仅可以是字符串,它还可以其他五种数据结构中的任意一种。通过选用不同的数据结构,用户可以使用 Redis解决各式各样的问题。
2.丰富的附加功能
持久化功能:将储存在内存里面的数据保存到硬盘里面,保障数据安全,方便进行数据备份和恢复。
发布与订阅功能:将消息同时分发给多个客户端,用于构建广播系统。
过期键功能:为键设置一个过期时间,让它在指定的时间之后自动被删除。
事务功能:原子地执行多个操作,并提供乐观锁功能,保证处理数据时的安全性。
脚本功能:在服务器端原子地执行多个操作,完成复杂的功能,并减少客户端与服务器之间的通信往返次数。
复制:为指定的 Redis 服务器创建一个或多个复制品,用于提升数据安全性,并分担读请求的负载。
Sentinel:监控 Redis 服务器的状态,并在服务器发生故障时,进行自动故障转移。
集群:创建分布式数据库,每个服务器分别执行一部分写操作和读操作。
3.完善的文档
Redis 具有完善、易读的文档,加上 Redis 本身功能的简单性,就算是新手也可以轻松上手。
中文翻译文档地址:http://redisbook.readthedocs.org/en/latest/index.html
4.良好的支持
redis的作者antirez 非常勤奋,在每个版本都会不断地增加有用的新功能:
• 2.6 新增脚本功能,并为很多命令添加了多参数支持(比如 SADD、ZADD、等等);
• 2.8 添加了数据库通知功能,HyperLogLog 数据结构以及 SCAN 命令,实现了部分重同步;
• 3.0 将推出稳定版的 Redis 集群,另外还有更多新功能陆续开发中……
Bug 一旦出现就会很快被修复, 齐全的测试套件以及稳扎稳打的开发策略,使得 Redis 非常健壮可靠。
有问题时,在 Redis 的论坛上发贴,或者到 Redis 的 GitHub 页面发 issue ,又或者直接和作者 antirez联系,通常都可以很快得到回应。
Pivotal 公司雇用 antirez 全力开发 Redis ,无后顾之忧;这间公司也提供专门的 Redis 开发和维护咨询服务。
阿里云、百度云、Amazon、 RedisLab 等公司都提供了基于 Redis 的应用服务。