簡介:redis是基於內存可持久化的日誌 型,key-value數據結。redis
Redis key 相關指令:數據庫
exits:檢查是否存在緩存
del:刪除app
type:返回給定key值的類型。dom
keys pattern:返回匹配類型模式的全部key函數
randomkey:返回中當前數據庫中隨機選擇一個key。性能
rename oldkey newkey:重命名spa
expire key second:爲key指定過時時間。操作系統
ttl key: 返回設置過時時間剩餘的秒數。線程
select db-index:經過索引選擇數據庫。默認連接數據庫爲0,默認數據庫數爲16.
move key db-index:將key從當前數據庫移動到指定數據庫。
redis數據類型:
支持的數據類型:字符串、列表、哈希對象、集合對象、有序集合 。
string 類型數據操做指令:
set key value:設置key 對應的值value
setnx key value :若是key不存在,設置key對應的值value,若是key存在,返回0.
get key:獲取key對應的值value
getset key value:先獲取key的值,在設置key的值。
mget key1 key2:一次獲取多個key值。
mset key1 value1 ... :一次設置多個key值。
msetxn key1 value1 ....:一次設置多個key值,不會覆蓋。
incr key:對key值作++操做。
desc key:對key值作--操做。
incrby key integer:對key加上指定值。
decrby key integer:對key減指定值。
hash類型數據操做指令:
hset:key filed value 設置hash filed爲指定值。
hget key filed :獲取指定hash field。
hmset key field1 valiue1...:同時設置hash多個field。
hmget key field1...:獲取多個指定的hash field。
hincrby key field integer:將指定的hash field 加上指定值。
hexits key field :檢查field值是否存在。
hdel key field:刪除指定hash field 。
hlen key:返回指定指定hash 的field數量。
hkeys key:返回hash 全部的field。
hvals key:返回hash 全部的value。
hgetall : 返回hash 全部的field 和value。
list 類型數據操做指令:
lpush key string:對key對應的list頭部添加新元素。
rpush key string:對key對應的list尾部添加新元素。
llen key:返回key對應list長度。
lrange key start end:返回指定區間的元素。
ltrim key start end :截取list指定區間元素。
lset key index value:設置list中指定下表index的元素值。
lrem key count value:從list頭部(count>0)或尾部(count<0)刪除必定數量(count)屁屁額指定值value的元素。
lpop key:從list頭部刪除並返回元素。
rpop key:從list尾部刪除並返回元素。
blpop key1 ... keyN timeout:從左向右掃描,返回第一個非空list進行lpop操做ping返回。全部的list爲空會阻塞timeout秒,timeout=0會一直阻塞。
brpop key1 ... keyN timeout:與blpop對應,從尾部刪除。
set 類型數據操做指令:
sadd key member:添加一個string 到key對應的set集合中。
srem key member:從key對應set中刪除指定元素。
spop key:刪除並返回key對應set中隨機的一個元素。
srandommenber key:隨機讀取key對應set中的元素。
smove srckey dstkey member:從srckey對應的set中移除member,並添加到dstkey對應的set中,整個操做是原子的。
scard key:返回key對應set元素個數。
sismember key member:判斷member是否爲key對應set中的元素。
sinter key1 key2....:返回給定key的交集。
sinterstore dstkey key1 key2....:返回給定key的交集,並保存到dstkey對應的set中。
sunion key key1...:返回給定key集合的並集。
sunionstore dstkey key key1...:返回給定key集合的並集,並保存到dstkey對應的set中。
sdiff key1 key2 ...:返回給定key的差集。
sdiffstore dstkey key1 key2 ...:返回給定key的差集,並保存到dstkey對應的set中。
smembers key:返回key對應set全部元素。
sorted set 類型數據操做指令:
zadd key score member:添加元素到集合中,元素在集合中對應的score。
zrem key member :刪除指定元素。
zincrby key member:增長對應member 的score值。
zrank key member :返回指定元素在集合中的排名,集合元素是按score從小到大排序。
zrevrank key member :返回指定元素在集合中的排名,集合元素是按score從大到小排序。
zrange key start end:從集合中獲取指定區間元素,返回有序結果。
zrevrange key start end:從集合中獲取指定區間元素,返回逆序結果。
zrangebyscore key min max:返回集合中score在給定score區間的元素。
zcount key min max:返回集合中score在給定義區間的數量。
zcard key:返回集合中元素個數。
zscore key element :返回集合中給定元素的score值。
zremrangebyrank key min max:刪除集合中排名在給定區間的元素。
zremrangebyscore key min max:刪除集合中score在給定區間的元素。
持久化:
快照方式(Default):講內存中的數據以快照的方式寫入到二進制文件中,默認文件名爲dump.rdb
save命令保存:在主線程中保存快照,redis用一個主線程來處理全部的客戶端請求,會阻塞全部的客戶端請求。
bgsave命令保存:
快照方式在必定時間隔作一次,redis意外宕機,會丟失最後一次快照後全部的數據修改。
日誌追加方式:將每一條收到的命令經過write函數追加到文件中(默認:appendOnly.aof)。redis重啓會經過從新執行文件中保存的寫命令在內存中重建整個數據庫內容。這種持久化也可能丟失部分修改,操做系統會在內核中緩存write的修改,可能不是當即寫到磁盤上。
appendonly yes // 啓用日誌追加持久化方式
appendfsync always // 每次收到的寫命令當即寫入磁盤,最慢,保證徹底持久化,不推薦使用。
appendfsync everysec // 每秒強制寫入一次,在性能和持久化有很好的折中,推薦使用
appendfsync no // 徹底依賴操做系統,性能最好,沒有持久化保證。
redis 虛擬內存:
主從同步:
redis 的安裝與配置