redis
repl
$ redis-cli
:set hints で、hintがでるようになる。 :set....で特殊コマンド?みたいなもの?
値の設定. 以下の構文
5つのデータ型(string, hash, set, sorted set, list)で、コマンドがある。
string
set key value {Ex seconds} {px milliseconds} {NX|MX}
SET – Redis
EX secondsは expireの秒, PXはexpireのミリ秒 (細かく指定したい時?) NX(set if not exists), XX(set if exists)
参考:
redis-cli コマンド操作まとめ
mset, mgetで、multi...
Redis に保存されてる値を見ようと思った時に覚えておきたい redis コマンド | そんなこと覚えてない
/icons/hr.icon
install
How To Install and Configure Redis on Ubuntu 16.04 | DigitalOcean
Redis を Ubuntu 16.04 LTS にインストールする手順 | WEB ARCH LABO
ubuntu16のバージョン古い。
redis-stable.tar.gzを落として設定する。
redis.conf
daemon化。
redisがdumpする場所
/etc/systemd/system/redis.service
Service: stopを踏襲せず
clientは、downloadした場所 ./src/redis-cli で起動する。 pathをどう通すかはあとで。
systemd を使って、serviceをstartするようにしておく。
/icons/hr.icon
settings
注意
bind は localhostのみに。
nginx - redis dirおよびdbfilenameの値が勝手に書き換えられる(113252)|teratail
補足に bind 127.0.0.1→#bind 127.0.0.1 とあるので、気になりました。
bind は redis に接続できるサーバのIP(ローカルIP)を指定するものです。
コメントアウトしてしまうと全解放となるので、もしネット公開されていれば
どこのサーバからでも接続でき、データ取得・更新、停止・再起動までできてしまいます。
危険です。
外部からMySQLの接続する際のチェックポイント
mysqlも同じ。 defaultで動かないな、、、みたいにして修正して放置すると...
メモリの確保
redis-serverを立ち上げる際に、こういう警告がでる。
WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1'
overcommit_memoryとは、、、たぶん、diskなんかに保存する際に必要な追加のメモリを確保する?みたいなこと。これでfailした際のバックアップが保証されるわけではないのかもだけど、少なくとも必要条件ではある?
参考: Redisを使う時は見積の二倍の容量必要だよね、という話 - Qiita
Can't save in background: fork: Cannot allocate memory
warning
net.core.somaxconnについて調べてみた - tetsuyai’s blog
/icons/hr.icon
peformance
いろいろ書いてある
PythonでRedisを効率的に使う(redis-pyのパフォーマンスをあげるには) - Ddenzow(ill)? with DB and Python
ただ、serializeについては、MessagePack がよい?
database - Fastest way to keep data in memory with Redis in Python - Stack Overflow
cache
Using Redis as an LRU cache – Redis
socket
なぜ unix socketを使わないのか? 特に明確な理由はない? 単に 別マシンとして使うことがおおいから?
設定自体は以下で説明されている。 25% faster と。それが意味を持たないなら、トライしなくてもよい。
How to Configure Redis to Use Unix Socket Speed Boost •
#systemd