[redis] Redis 常用命令
?
redis 五種數據類型的使用場景
淺談 Redis 數據庫的鍵值設計
?
redis命令文檔:
http://doc.redisfans.com/index.html
?
1. redis查看當前所有的key
KEYS *模糊匹配key
keys 模糊字符串*
如:keys SOCIA:T_SOCIA_ALBUM_ALBUM:2*
?2. 查看當前redis的配置信息
CONFIG GET *3. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.
強制停止redis快照導致,redis運行用戶沒有權限寫rdb文件或者磁盤空間滿了,解決辦法:
config set stop-writes-on-bgsave-error no例如:
set 'name' 'shenhui' -MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error. config set stop-writes-on-bgsave-error no +OK set 'name' 'shenhui' +OK4. redis 127.0.0.1:6379>
CONFIG SET logfile "/var/log/redis/redis-server.log"(error) ERR Unsupported CONFIG parameter: logfile
logfile 不能通過set動態設置
?
5.(error) OOM command not allowed when used memory >
設置了maxmemory的選項,redis內存使用達到上限。
可以通過設置LRU算法來刪除部分key,釋放空間。
默認是按照過期時間的,如果set時候沒有加上過期時間就會導致數據寫滿maxmemory。
如果不設置maxmemory或者設置為0 64位系統不限制內存,32位系統最多使用3GB內存。
volatile-lru -> 根據LRU算法生成的過期時間來刪除。
allkeys-lru -> 根據LRU算法刪除任何key。
volatile-random -> 根據過期設置來隨機刪除key。
allkeys->random -> 無差別隨機刪。
volatile-ttl -> 根據最近過期時間來刪除(輔以TTL)
noeviction -> 誰也不刪,直接在寫操作時返回錯誤。
?
6. reids日志位置logfile 日志記錄方式,默認值為stdout,如果設置為stdout且以守護進程方式運行,那么日志會被重定向到/dev/null,也就是不記日志。
?
7.Redis官方文檔對VM的使用建議:
當你的key很小而value很大時,使用VM的效果會比較好.因為這樣節約的內存比較大.
當你的key不小時,可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個新的value.
最好使用linux ext3 等對稀疏文件支持比較好的文件系統保存你的swap文件.
vm-max-threads這個參數,可以設置訪問swap文件的線程數,設置最好不要超過機器的核數,如果設置為0,那么所有對swap文件的操作都是串行的.可能會造成比較長時間的延遲,但是對數據完整性有很好的保證.
有了VM功能,Redis終于擺脫了受內存容量限制的噩夢了,似乎我們可以稱其為Redis數據庫了,我們還可以想象又有多少新的用法可以產生.當然,希望這一功能不會對Redis原有的非常牛B的內存存儲性能有所影響.
?
8. redis修改持久化路徑和日志路徑
vim redis.conf
logfile /data/redis_cache/logs/redis.log #日志路徑
dir /data/redis_cache #持久化路徑,修改后 記得要把dump.rdb持久化文件拷貝到/data/redis_cache下
先殺掉redis,拷貝dump.rdb,啟動
?
9. 清redis緩存
./redis-cli #進入 dbsize flushall #執行 exit10. 刪除redis當前數據庫中的所有Key
flushdb11.刪除redis所有數據庫中的key
flushall【2016-12-19日更新】
#切換到redis客戶端目錄
F:
cd redis-2.8.12
#連接redis遠程服務器
redis-cli.exe -h 192.168.6.107 -p 16680
redis-cli.exe -h 192.168.6.107 -p 16681
#在16680上查詢查不到,提示去16682上查詢
192.168.6.107:16680> get rediskey
(error) MOVED 12480 192.168.6.107:16682
#在16682上查詢,結果為4
192.168.6.107:16682> get rediskey
"4"
常用命令
【HASH】
#獲取Hash類型的值
HGETALL rediskey
【STRING】
#獲取String類型的值
GET rediskey
【LIST】
list主要操作函數小結
#獲取list長度
LLEN rediskey
#獲取list的前N-1個元素
LRANGE rediskey 0 N
【ZSET】
#獲取zset類型的正序N-1個member-不帶score
ZRANGE rediskey 0 N
#獲取zset類型的正序N-1個member和score
ZRANGE rediskey 0 N WITHSCORES
#獲取zset類型的倒序N-1個member-不帶score
ZREVRANGE rediskey 0 N
#獲取zset類型的正序N-1個member和score
ZREVRANGE rediskey 0 N WITHSCORES
#獲取zset中某個member的score
ZSCORE rediskey member
#更新zset中某個 member 的score
ZINCRBY rediskey 步長 member
#刪除zset中某個 member
ZREM rediskey member
總結
以上是生活随笔為你收集整理的[redis] Redis 常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本进水
- 下一篇: MySQL常用简单小命令