redis知識點雜記

最近梳理了一下redis的基本知識。本文會從redis的簡單使用、redis的數據類型、redis持久化三個方面作簡單闡述和總結。redis

1、Redis基本操做

一、key的規則

不能使用\n空格。其餘均可以服務器

二、key操做

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

2、Redis五種數據類型和基本操做

Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

一、String類型

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類型

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的第一個元素

三、set集合類型

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的朋友交集等。


四、sort set排序集合類型

和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 刪除集合中給定區間的元素

適用場景:

得到熱點帖子信息等。

五、hash類型

操做:

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

3、Redis持久化

redis重啓時會把數據放在硬盤一份兒,重啓後再拷貝回來。

1,snap shotting快照持久化

一次性把redis中所有數據保存一份在硬盤中,數據大時不適用。

2,append only file(AOF持久化)

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

相關文章
相關標籤/搜索