轉載請注明出處哈: http://carlosfu.iteye.com/blog/2240426
一、Redis單機下載下傳、編譯、安裝:
cd /opt/soft
wget http://download.redis.io/releases/redis-3.0.4.tar.gz
tar xzf redis-3.0.4.tar.gz
ln -s /opt/soft/redis-3.0.4 /opt/soft/redis
cd redis
make
make install
三點注意一下:
1. make install可以将redis的一些指令放到/usr/local/bin, 之後就不需要全路徑執行redis指令了,例如可以在任意目錄執行redis-cli。
2. 通常為了更新友善,我們建立一個軟連接配接,以後所有操作都針對這個軟連接配接。
3. 通常redis我們選擇最新的release版本。
二、Redis單機-啟動伺服器、用戶端連接配接、關閉伺服器:
1. 啟動伺服器
redis-server
預設使用redis目錄下的redis.conf作為配置檔案,預設端口是6379, daemonize為no(非守護程序),是以啟動時候會看到如下日志:
15193:C 16 Sep 10:12:00.558 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.4 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 15193
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
15193:M 16 Sep 10:12:00.563 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
15193:M 16 Sep 10:12:00.564 # Server started, Redis version 3.0.4
15193:M 16 Sep 10:12:00.564 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
15193:M 16 Sep 10:12:00.564 * DB loaded from disk: 0.000 seconds
15193:M 16 Sep 10:12:00.564 * The server is now ready to accept connections on port 6379
2. 用戶端連接配接:
$ redis-cli
redis> set company xxx
OK
redis> get company
"xxx"
注意:
redis-cli通常的連接配接方法是redis-cli -h 10.10.10.11 -p 6380
如果直接執行redis-cli,預設執行的是redis-cli -h 127.0.0.1 -p 6379
3. 關閉伺服器:(不要用kill -9)
$ redis-cli
redis> shutdown
注意:
我們一般使用shutdown/kill指令優雅的關閉redis.
緊急情況使用kill -9
三、Redis使用配置檔案啟動(redis配置很多,這裡隻說明一些常用的)
1. Redis配置
(1). 總體配置
配置名 | 含義 | 預設值 | 可選值 | 是否可以動态修改(config set) |
daemonize | 是否守護程序 | no | yes|no | 不可以 |
port | 端口号 | 6379 | 其他可用端口 | |
timeout | 用戶端閑置多少秒後關閉連接配接 | 預設為0,永不關閉 | 可以 | |
tcp-keepalive | 檢測用戶端是否健康周期(秒) | 預設為0, 不檢測 | ||
loglevel | redis日志級别 | notice | debug|verbose|notice|warning | |
logfile | 日志檔案名 | 空 | ||
databases | 可用的資料庫數 | 16 | 0-15 |
(2). 最大記憶體以及政策:
maxmemory | 室内最大可用記憶體 | 不使用該配置,也就對記憶體使用無限制 | 建議規定最大隻存 | |
maxmemory-policy | 記憶體不夠時,淘汰政策 | volatile-lru | 見下面 |
其他maxmemory-policy:
- volatile-lru -> 用lru算法删除過期的鍵值
- allkeys-lru -> 用lru算法删除所有鍵值
- volatile-random -> 随機删除過期的鍵值
- allkeys-random -> 随機删除任何鍵值
- volatile-ttl -> 删除最近要到期的鍵值
- noeviction -> 不删除鍵,隻傳回一個錯誤
(3). AOF相關
appendonly | 是否開啟aof持久化模式 | |||
appendfsync | aof同步磁盤頻率 | everysec | always|everysec|no | |
appendfilename | aof檔案名 | appendonly.aof | ||
no-appendfsync-on-rewrite | 設定為yes表示rewrite期間對新寫操作不fsync,暫時存在記憶體中,等rewrite完成後再寫入 | no|yes | ||
auto-aof-rewrite-min-size | 觸發rewrite的aof檔案最小閥值 | 64m | 可以 | |
auto-aof-rewrite-percentage | Redis重寫aof檔案的比例條件 | 100 | 可以 |
(4). RDB
save | rdb儲存條件 | save 900 1 save 300 10 save 60 10000 | 如果沒有該配置,代表不适用rdb | |
dbfilename | rdb檔案名 | dump.rdb | dump-${port}.rdb | |
rdbcompression | rdb檔案是否壓縮 | yes | ||
rdbchecksum | rdb檔案是否使用校驗和 | |||
dir | redis工作目錄 | 目前目錄 | 指定目錄 |
(5). 慢查詢配置
slowlog-log-slower-than | 慢查詢被記錄的閥值(機關微秒) | 10000 | ||
slowlog-max-len | 最多記錄慢查詢的條數 | 128 |
(6). 資料結構優化配置:
hash-max-ziplist-entries | hash資料結構優化參數 | 512 | ||
hash-max-ziplist-value | 64 | |||
list-max-ziplist-entries | list資料結構優化參數 | |||
list-max-ziplist-value | ||||
set-max-intset-entries | set資料結構優化參數 | |||
zset-max-ziplist-entries | zset資料結構優化參數 | |||
zset-max-ziplist-value |
2. 使用配置啟動redis單機:
redis> redis-server redisConfigFilePath
注意:
我們一般在redis目錄下,建立conf目錄,将redis目錄下的redis.conf拷貝進去,進行修改作為新的配置檔案。
四、視訊: