缓存(五)---为什么选择redis

Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

网络环境下使用redis

redis 是TCP Socket 网络环境,client 发包到 redis,报文格式是resp,非常短小精悍的一个报文体系,而在服务端redis 是单线程阻塞接受 请求,使用socket队列保证公平

为什么我选择redis而不是memcached

redis ---- socket 单线程阻塞 accept,公平,内部处理机制为多线程复用
memcached -----soket多线程accept竞争,内部机制也是多线程

在单机环境下memcached要比redis性能高,但是redis从设计之初就是为集群而生,所以单线程不是redis的短处,好比大数据环境一下,(群狼战猛虎)100台普通机器 远比 1-10台高端服务器要快的多,可靠的多,所以在选择缓存的时候,如果是分布式环境,较大的缓存,redis无疑是更好的选择。

此外,redis还支持数据持久化,丰富的数据类型,完善的生态环境。
redis支持数据持久化,支持扩展,单个value理论可达1G,而memcached 最大1MB

总结

框架 持久化 集群 数据格式 数据大小 可靠性
redis 多种 单个val1G 支持持久化重启可快速加入内存
memcached 一种 单个val1MB 重启全部清空

你可能感兴趣的:(缓存)