最近梳理了一下redis的基本知識。本文會從redis的簡單使用、redis的數據類型、redis持久化三個方面作簡單闡述和總結。redis
不能使用\n空格。其餘均可以服務器
exists key 測試製定key是否存在app
del key1 key2 刪除key異步
type key 返回給定key的類型測試
keys pattern 返回模糊匹配 如:keys *優化
rename oldkey newkey 更名字unix
dbsize 返回當前庫key數量排序
expire key seconds 給key設定有效時間隊列
ttl key 返回key剩餘有效時間element
select db-index 切換庫
move key db-index 將key從當前庫移動到另外一個庫
flushdb 刪除當前庫中全部key
flushall 刪除全部庫中全部key
Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
string是基本類型。
set key value 設置值
mset key1 value1 key2 value2 一次設置多個key值
mget key1 key2 key3 一次獲取多個key
incr key 自增長一
decr key 自減一
incrby key integer 加integer
decrby key integer 減integer
append key value 追加value
substr key start end 截取字符串。包括start和end
list類型是一個屬相鏈表。經過push,pop操做從鏈表頭或尾進行添加刪除操做。使得list既能夠用做棧,也能夠做爲隊列。
lpush key value key頭部添加元素
rpop key key的尾部刪除元素,並返回刪除元素
llen key 對應list的 長度,key不存在返回0,若是key對應的不是list則返回錯誤。
lrange key start end 返回指定區間元素
rpush key string 尾部添加
lpop key 頭部刪除
ltrim key start end 截取list,只保留指定區間內元素
lindex key 2 獲取key的第一個元素
redis的set是Sting類型的無序集合,set元素最大能夠包含(2的32次方-1)個元素。
每一個集合的元素不能重複。
sadd key member 添加set集合元素
srem key mamber 移除
smove p1 p2 member 從p1中移除而後添加到p2
scard key 返回set的元素個數
smember key member 判斷member是否存在set中
sinter key1 key2 交集
sunion key1 key2 並集
sdiff key1 key2 差集
smember key 查看集合
tom朋友圈有:1 2 3 4 5,doc朋友圈有:2 3 4 5 6,求tom和doc的朋友交集等。
和set同樣sort set也是String類型的集合。不一樣的是沒個元素都會關聯一個權。
經過權值能夠有序的獲取集合中的元素
zadd key score member 添加key。socre權,member值
zrem key member 移除
zincrby key incr member key中的member加incr
zrank key mamber 查看mmber從小到大排名
zrevrank key member 查看mmber從大到小排名
zrange key start end 按照權正排序
zrevrange key start end 按照權反排序
zcard key 查看集合個數
zscore key element 查看給定元素對應的score
zremrangebyrank key min max 刪除集合中給定區間的元素
得到熱點帖子信息等。
hset key field value 設置hash值
hget key field 獲取key
*hmget key field1 field2.. 獲取指定key值
*hmget key field1 value1 .. 同時設置多個值
hinrcby key field integer 指定值增長
hexists key field 是否存在
hdel key field 刪除
hlen key 獲取field的數量
hkeys key 獲取全部field
hvals key 獲取全部value
*hgetall key 獲取全部field和value
redis重啓時會把數據放在硬盤一份兒,重啓後再拷貝回來。
一次性把redis中所有數據保存一份在硬盤中,數據大時不適用。
appendfsync always 每次寫命令都強制寫入磁盤
appendfsync everysec 每秒
appendfsync no 依賴os,cpu閒的時候才寫入磁盤
bgsave 異步保存數據到磁盤(快照保存)。
lastsave 返回上次成功保存到磁盤的unix時間戳
shutdown 同步保存到服務器並關閉redis服務器
bgrewriteaof AOF備份文件優化處理:對appendonly.aof優化壓縮。
如:./redis-cli bgrewriteaof
./redis-cli -h 127.0.0.1 -p 6379 bgsave 手動發起快照
redis.conf中:slaveof IP PORT