Memcached, 是一套分布式的高速缓存系统
Redis, 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
我们内部有很多系统都依赖 Memcached, 虽然平时没什么问题, 但是一旦宕机, 内存中数据丢失, 导致系统命中率下降, 严重影响系统稳定性. 虽然有很多解决方法, 比如: 对key做hash分布在不同实例下. 或更换持久性 Redis, 都要对业务层进行修改, 由于各种原因无法直接修改业务代码. 所以我云针对 Redis 2.0 版本 打了个patch,支持 memcache 协议, 同一个进程监听两个端口, 一个 Redis 6379, 一个 Memcached 11211, 对同一块内存进行操作
项目:https://github.com/vislee/medis
命令支持
由于使用 Redis 2.0 添加 Memcached 协议, 所以 Redis 命令都支持, Memcached 只支持部分命令如下:
set
add
replace
append
prepend
get
gets
delete
incr
decr
安装 Medis
git clone https://github.com/vislee/medis.git
make
make install
配置文件
daemonize yes
pidfile /var/run/medis.pid
port 6379
memcached-port 11211
timeout 300
loglevel notice
logfile /var/log/medis.log
databases 3
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /var
maxclients 102400
maxmemory 1024mb
appendonly no
appendfilename appendonly.aof
appendfsync no
activerehashing yes
网友评论