只使用Redis一次的问题
虽然我非常想使用Redis的有序集合(zset),但我不想为此特地让Redis常驻运行,也不需要将数据持久化存储。
而且考虑到LevelDB或SQLite等替代方案都似乎不太合适。
所以我决定在需要的时候启动Redis服务器,并通过套接字进行连接。
#!/bin/bash
set -ue
# バックグラウンドでredis起動
cat <<EOD | redis-server -
daemonize yes
pidfile redis.pid
port 0
bind 127.0.0.1
logfile redis.log
loglevel verbose
unixsocket redis.sock
unixsocketperm 700
timeout 0
databases 16
EOD
# 後始末
trap 'kill $(cat redis.pid)' EXIT
# 立ち上がりを待機
while test ! -S redis.sock; do sleep 1; done
# socket 経由で繋いでみる
redis-cli -s redis.sock <<EOD
set hoge 123
get hoge
EOD
当然是用Redis,对吧。