Redis 由于功能强大、性能优越、支持持久化等优点,在很多应用上已经替代Memcached,成为首选的缓存系统,还可以作为简单的db使用。

正因为如此,有时我们需要将redis同时作为下面几种功能使用:

  • cache,不需要持久化
  • session,只需要简单的持久化,隔个十分钟存一下就好,丢失一些也不会造成太大问题
  • db,不能丢失数据,需要比较积极的持久化策略,日志记录等

虽然你可以按db的方式来统一对待所有的需求,将它们放在同一个实例中,使用不同的database区分,但是将它们分到不同实例的方式可能会更好。

配置文件

配置文件位与 /etc/redis 目录,默认有 redis.conf

我们可以将redis.conf重命名为common.conf,然后用include的方式来定制每一个redis实例的配置

如 redis-session.conf

include /etc/redis/common.conf
pidfile /var/run/redis/redis-session.pid
port 6380

save 900 1
save 60 10000
dbfilename dump-session.rdb

Service配置

如果你想将你自定义的redis实例变成系统的service,使用debian自带的service命令来启动重启,那么你需要配置service脚本

复制 /lib/systemd/system/redis-server.service 到 /lib/systemd/system/redis-session.service

然后根据需求修改里面的配置,主要是配置文件,pid路径等。

你可以通过 service redis-session start 或者 status 等命令来测试,如果启动失败,请通过 /var/log/syslog 文件来查看问题

INIT脚本

如果你想你的redis实例可以开机自动运行,那么就需要配置init脚本

复制 /etc/init.d/redis-server 到 /etc/init.d/redis-session

根据需求修改里面的配置,主要也是命名、配置等信息,然后通过

update-rc.d redis-session defaults

命令来设置开机自动运行