redis的应用场景:少量数据存储,高速读写访问,并提供数据落地功能。支持数据备份,master-slave模式的数据备份。支持数据持久化,将数据存储到硬盘上。
redis作为一个数据库/缓存和消息中间件,使用人数越来越多。接触一门新的技术总要将它和已经存在的东西进行比较,才能在选型的时候tradeoffs。
市场上经常讲redis和memcached进行比较。总结下来有几下几点:
1.redis比memcached有更多的数据结构和更丰富的数据操作。
2.redis是单进程单线程,在处理小数据量的时候性能比memcached更优秀(10w+数据量的时候,memcached更好)。redis在60000个连接他的qps为50000多。单线程完全不用考虑锁的问题。
3.memcached相对于redis的key-value,它的内存利用率更高。但是如果redis的hash,并用组合压缩,则redis会好些。
主要常见的数据类型:String,Hash,List(链表),Set,Sorted set,pub/sub,Transactions。
redis提供的k-v存储人的信息,它的value其实是一个hashMap。这样有效的解决了因为改变一个人员部分信息序列化等问题,也排除了并发控制的问题,也节约了key的长度,也就是内存。
List应用场景:论坛中的评论信息。关注了粉丝列表等。
Set应用场景:微博中一个人所有关注的群或者人的集合。
sorted set应用场景:消息队列。他会自动重排顺序。
pub/sub应用场景:实时消息系统,当key发生变化时,所有sub它的客户端都会受到消息。