- 設(shè)值
set KEY VALUE
- 獲值
get KEY
- 設(shè)置過期時間(單位:s)
set KEY VALUE ex SECONDS
- 設(shè)置過期時間(單位:s)
exprire KEY SECONDS
- 設(shè)置過期時間(單位:ms)
pexprire KEY MILLISECONDS
- 設(shè)置UNIX過期時間戳
exprireat KEY timestamp
- 設(shè)置UNIX過期時間戳
pexprireat KEY MILLISECONDS-TIMESTAMP
- 刪除過期
rersist KEY
- 存在則不插入
set B 2 nx
- 存在則修改
set B 2 xx
- 批插入
mset A 1 B 2 C 3
- 批插入(原子操作)
msetnx D 7 E 3
獲取所有鍵keys *
設(shè)置新值并返回舊值
getset A 2
- 將值VALUE插入到字符串鍵key已存儲內(nèi)容的末尾(字符串拼接)
append KEY VALUE
- 獲取字符串長度
strlen KEY
- 獲取鍵值為key的字符串從index1到index2的值(index從左往右 從0開始 從右往左 從-1開始)
getrang KEY INDEX1 INDEX2
整型
incrby KEY INTNUM(整型)
- 將key的值加INTNUM(沒有則創(chuàng)建,并將INTNUM賦給key)
decrby KEY INTNUM
將KEY的值減INTNUM
KEY值加一
incr KEY
- KEY值減一
decr KEY
浮點型
incrbyfloat KEY NUM(浮點型)
- 將key的值加NUM(沒有則創(chuàng)建,并將NUM賦給key,通過傳入負值做減法)
TTL KEYPTTL KEY
查看剩余生存時間
KEY存在,但沒有設(shè)置TTL,返回-1
KEY存在,還在生命周期內(nèi),返回剩余的秒
KEY曾經(jīng)存在,但已消亡,返回-2
鍵類型
type KEY
- 鍵是否存在
exists KEY
- 鍵重命名
renamenx KEY NEWKEY
- 刪除鍵
del KEY
- 設(shè)置鍵為key的二進制的OFFset(從右往左)位值為VALUE
setbit KEY OFFSET VALUE
獲取鍵為key在OFFset位上的值(從右往左)最低位開始正數(shù)符號位為1負數(shù)為0getbit KEY OFFSET
返回key在指定區(qū)間第一次出現(xiàn)的位置
bitpos KEY BIT [START][END]
- 獲取key二進制位數(shù)
bitcount KEY
- 二進制位操作
bitop OPERATION KEY [KEY ...]
清除當前庫數(shù)據(jù)flushdbflushall
清除所有庫中的數(shù)據(jù)
List列表(Linked List實現(xiàn)元素為字符串)b ul LEFTr RIGHTx EXIST
從左壓入元素
lpush KEY VALUE
- 從左壓入元素
lrushx KEY VALUE
- 從右壓入元素
rpush KEY VALUE
- 從右壓入元素
rpushx KEY VALUE
- 從左彈出元素
lpop KEY
- 從右彈出元素
rpop KEY
- 從source尾部彈出元素,壓入destination頭部
rpoplpush SOURCE DESTINATION
- 返回指定范圍元素
lrange KEY START STOP
- 獲取指定位置的元素
lindex KEY INDEX
- 設(shè)置指定位置元素的值
lset KEY INDEX VALUE
- 元素列表長度(元素個數(shù))
llen KEYLREM KEY COUNT VALUEcount>0:從表頭開始遍歷移除count個值為VALUE的元素count<0:從表尾開始遍歷移除count絕對值個值為VALUE的元素count=0:移除所有值為VALUE的元素
- 移除從start到stop以外的元素
ltrim KEY START STOP
- 在pivot(key中已有元素)之前(BEFORE)或之后(AFTER)插入元素VALUE
linsert KEY BEFORE|AFTER PIVOT VALUE
- 從列表頭部阻塞彈出元素
blpop KEY timeout
- 從列表尾部阻塞彈出元素
brpop KEY TIMEOUT
- 從一個列表尾部阻塞彈出元素壓入另一個列表的頭部
brpoplpush SOURCE DESTINATION TIMEOUThash散列
- 設(shè)置單個字段(鍵,字段,值)
hset KEY FIELD VALUE
- KEY的field不存在時才執(zhí)行
hsetnx KEY FIELD VALUE
- 設(shè)置多個字段
hmset KEY FIELD VALUE [FIELD VALUE ...]
返回字段個數(shù)hlen KEY
判斷字段是否存在(key或field不存在返回0)
hexists KEY FIELD
- 返回字段值
hget KEY FIELD
- 返回多個字段值
hmget KEY FIELD [FIELD...]
- 獲取所有鍵值對
hgetall KEY
- 獲取所有鍵
hkeys KEY
- 獲取所有值
hvals KEY
- 給KEY的FIELD字段加INCREMENT(整型)
hincrby KEY FIELD INCREMENT
- 給key的field字段加increment(浮點型)
hincrbyfloat KEY field increment
- 刪除key的field字段
hdel KEY field [field...]
Set集合
無序的,去重的
元素字符串類型
sadd KEY member [member...]
- 增加一個或多個元素(如果元素已存在,自動忽略)
srem KEY member [memver...]
- 移除一個或多個元素(如果元素不存在,自動忽略)
smembers KEY
- 返回集合所有元素(元素過多會產(chǎn)生阻塞)
sismember KEY member
- 檢查元素是否存在
SRANDMEMBER KEY count
- 隨機返回集合中count個元素(默認為1)
count大于集合基數(shù),返回所有元素
count>0返回可重復出現(xiàn)的count絕對值個
SCARD KEY
- 返回集合元素個數(shù)(不需要遍歷)
SPOP KEY
- 隨機移除并返回被移除的元素
smovl SOURCE DESTINATION MEMBER
- 移除source中的member到destination
sdiff KEY [key...]
- 從第一個key中去除其他集合和自己的交集部分
sdiffstore DESTINATION KEY [KEY...]
- 將差集結(jié)果存到destination中
sinter KEY [KEY...]
- 取所有集合交集部分sinter
store destination KEY [key...]
- 將交集結(jié)果存到destination中
sunion KEY [KEY...]
- 取所有集合并集部分
sunionstore DESTINATION KEY [KEY...]
將并集結(jié)果存到DESTINATION中SortedSet集合有序的,去重的元素字符串類型每個元素都關(guān)聯(lián)一個浮點數(shù)分值(score),并按照分值從大到小順序排列集合中的元素(分值可以相同)
增加一個或多個元素(如果元素已存在,則使用新的score)
zadd KEY SCORE MEMBER [SCORE MEMBER...]
- 移除一個或多個元素(元素不存在,自動忽略)
zrem KEY MEMBER [MEMBER...]
- 顯示分值
zscore KEY MEMBER
- 增加或減少(increment為負數(shù))分值
zincrby KEY INCREMENT MEMBER
- 返回元素排名(索引從0開始)
zrank KEY MEMBER
- 返回指定區(qū)間元素
zrange KEY START STOP [WITHSCORES]
如果score相同,則按照字典序lexicographical order排序
默認按照score從小到大,如果需要score從大到小排列,使用ZREVRANGE
- 返回指定分值區(qū)間元素
zrangebyscore KEY MIN MAX [WITHSCORES] [LIMIT OFFSET COUNT]
返回score默認屬于[min,max]之間,元素按照score升序排序,score相同字典序LIMIT中OFFset代表跳過多少個元素,count代表返回個數(shù)使用小括號,修改區(qū)間為開區(qū)間-inf和+inf表示負無窮和正無窮
- 刪除指定排名范圍元素
zremrangebyrank KEY START STOP
- 返回集合中元素個數(shù)
zcard KEY
- 返回指定范圍元素(分值)
zcount KEY MIN MAX
- 并集
zunionstore DESTINATION NUMKEYS KEY [KEY ...] [weights WEIGHT] [aggregate sum|min|max]
NUMKEYS指定key的數(shù)量,必須WEIGHTS權(quán)重,key中每一個score都要乘以權(quán)重
AGGREGATE指定并集結(jié)果的聚集方式
SUM:將所有集合中某一元素的score值之和作為結(jié)果集中該成員的score值MIN:將所有集合中某一元素的score值中最小值作為結(jié)果集中該成員的score值
MAX:將所有集合中某一元素的score值中最大值作為結(jié)果集中該成員的score值
- RDB持久化(全量備份)
RDB文件(二進制)
定時更新(消耗大,不完全安全)
save M N
- 距離上次創(chuàng)建RDB文件已過m秒,且所有數(shù)據(jù)庫總共已發(fā)生不少于n次的修改,則執(zhí)行BGSAVE
bgsave
執(zhí)行時不會阻塞進程(fork子進程,效率稍低)
AOF持久化(增量備份)
使用數(shù)據(jù)庫日志來保存每一條命令appendfsync always
服務器沒寫入一個命令,調(diào)用一次fdatasyncappend
fsync everysec
服務器每秒調(diào)用一次fdatasync appendfsync no
服務器不主動調(diào)用fdatasync always
速度慢
ererysec
默認值
AOF文件冗余時,AOF文件過大,需要AOF重寫,以減小AOF文件
客戶端向服務器發(fā)送BGREWRITEAOF
命令通過設(shè)置配置選項來讓服務器自動執(zhí)行BGREWRITEAOF
命令:
auto-aof-rewrite-min-size
,觸發(fā)AOF重寫所需的最小體積,只要AOF文件的體積大于等于size時.
服務器才會考慮是否進行AOF重寫主從復制Master:只能寫
Slave:只能讀
- redis-server
--slaveof(啟動)配置當前服務為slave
SLAVEOF host port (命令行)將當前服務器狀態(tài)從master修改為其它服務器的slave
redis-server config.conf(配置文件)
config.conf文件內(nèi)容:
slaveof master-ip master-portslave-portMaster出現(xiàn)故障時Slave使用SLAVEOF no one命令成為Master,其它Slave使用slaveof命令指向新的Master(手動)
- Redis哨兵Sentinel
配置文件Sentinel monitor
監(jiān)視名為name的主服務器,當quorum個Sentinel判斷主服務器下線時,Sentinel才會同意故障轉(zhuǎn)移
Sentinel默認端口號為26379
Redis Twemproxy(分片)
Redis集群最大節(jié)點個數(shù) 16384