1.Redis 鍵(key)
-
keys *
查看當前庫所有key
(匹配:keys *1
)。 -
exists key
判斷某個key
是否存在。 -
type key
查看你的key
是什么類型。 -
del key
刪除指定的key
數(shù)據(jù)析蝴。 -
unlink key
根據(jù)value
選擇非阻塞刪除赢乓,僅將keys
從keyspace
元數(shù)據(jù)中刪除妹萨,真正的刪除會在后續(xù)異步操作。 -
expire key 10
10秒鐘:為給定的key
設置過期時間标捺。 -
ttl key
查看還有多少秒過期懊纳,-1表示永不過期,-2表示已過期亡容。 -
select
命令切換數(shù)據(jù)庫嗤疯。 -
dbsize
查看當前數(shù)據(jù)庫的key
的數(shù)量。 -
flushdb
清空當前庫闺兢。 -
flushall
通殺全部庫茂缚。
2.Redis 字符串(String)
簡述
-
String
是Redis最基本的類型屋谭,你可以理解成與Memcached一模一樣的類型,一個key對應一個value桐磁。 -
String
類型是二進制安全
的。意味著Redis的string可以包含任何數(shù)據(jù)我擂。比如jpg圖片或者序列化的對象衬以。 -
String
類型是Redis最基本的數(shù)據(jù)類型校摩,一個Redis中字符串value最多可以是512M
。
常用命令
-
set <key><value>
添加鍵值對衙吩。 -
get <key>
查詢對應鍵值互妓。 -
append <key><value>
將給定的<value>
追加到原值的末尾。 -
strlen <key>
獲得值的長度。 -
setnx <key><value>
只有在 key 不存在時設置 key 的值车猬。 -
incr <key>
將 key 中儲存的數(shù)字值增1;只能對數(shù)字值操作珠闰,如果為空,新增值為1坛悉。 -
decr <key>
將 key 中儲存的數(shù)字值減1承绸;只能對數(shù)字值操作,如果為空军熏,新增值為-1。 -
incrby / decrby <key><步長>
將 key 中儲存的數(shù)字值增減均践。自定義步長摩幔。 -
mset <key1><value1><key2><value2> .....
同時設置一個或多個key-value
對 。 -
mget <key1><key2><key3> .....
同時獲取一個或多個value
或衡。 -
msetnx <key1><value1><key2><value2> .....
同時設置一個或多個key-value
對,當且僅當所有給定key
都不存在封断。 -
getrange <key><起始位置><結束位置>
獲得值的范圍,類似java中的substring椒涯,前包回梧,后包。 -
setrange <key><起始位置><value> 用 <value>
覆寫<key>
所儲存的字符串值狱意,從<起始位置>
開始(索引從0開始)。 -
setex <key><過期時間><value>
設置鍵值的同時财骨,設置過期時間,單位秒该贾。 -
getset <key><value>
以新?lián)Q舊,設置了新值同時獲得舊值。
3.Redis 列表(List)
簡述
單鍵多值
List
是簡單的字符串列表理澎,按照插入順序排序糠爬。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)执隧。它的底層實際是個雙向鏈表
,對兩端的操作性能很高镀琉,通過索引下標的操作中間的節(jié)點性能會較差。
常用命令
-
lpush/rpush <key><value1><value2><value3> ....
從左邊/右邊插入一個或多個值。 -
lpop/rpop <key>
從左邊/右邊彈出一個值凡壤。值在鍵在亚侠,值光鍵亡俗扇。 -
rpoplpush <key1><key2>從<key1>
列表右邊彈出一個值,插到<key2>
列表左邊滞谢。 -
lrange <key><start><stop>
按照索引下標獲得元素(從左到右)除抛。 -
lrange mylist 0 -1
0左邊第一個到忽,-1右邊第一個,0-1表示獲取所有)华烟。 -
lindex <key><index>
按照索引下標獲得元素(從左到右)。 -
llen <key>
獲得列表長度 搅方。 -
linsert <key> before <value><newvalue>
在<value>
的后面插入<newvalue>
插入值姨涡。 -
lrem <key><n><value>
從左邊刪除n個value
(從左到右)涛漂。 -
lset<key><index><value>
將列表key
下標為index
的值替換成value
瓢剿。
4.Redis 集合(Set)
簡述
Set
對外提供的功能與List
類似是一個列表的功能间狂,特殊之處在于Set
是可以自動排重的鉴象,當你需要存儲一個列表數(shù)據(jù)纺弊,又不希望出現(xiàn)重復數(shù)據(jù)時淆游,Set
是一個很好的選擇犹菱,并且Set
提供了判斷某個成員是否在一個Set
集合內的重要接口,這個也是List
所不能提供的虑椎。
Set
是string類型的無序集合捆姜。它底層其實是一個value為null的hash表
泥技,所以添加珊豹,刪除店茶,查找的復雜度都是O(1)
贩幻。
常用命令
-
sadd <key><value1><value2> .....
將一個或多個 member 元素加入到集合key
中丛楚,已經存在的 member 元素將被忽略趣些。 -
smembers <key>
取出該集合的所有值坏平。 -
sismember <key><value>
判斷集合<key>
是否為含有該<value>
值,有1坎穿,沒有0玲昧。 -
scard<key>
返回該集合的元素個數(shù)孵延。 -
srem <key><value1><value2> ....
刪除集合中的某個元素尘应。 -
spop <key>
隨機從該集合中彈出一個值苍鲜。 -
srandmember <key><n>
隨機從該集合中取出n個值混滔。不會從集合中刪除 坯屿。 -
smove <source><destination>value
把集合中一個值從一個集合移動到另一個集合领跛。 -
sinter <key1><key2>
返回兩個集合的交集元素隔节。 -
sunion <key1><key2>
返回兩個集合的并集元素怎诫。 -
sdiff <key1><key2>
返回兩個集合的差集元素(key1中的,不包含key2中的)肉津。
5.Redis 有序集合(Zset)
簡述
有序集合zset
與普通集合set
非常相似妹沙,是一個沒有重復元素
的字符串集合距糖。不同之處是有序集合的每個成員都關聯(lián)了一個評分(score)
,這個評分(score)被用來按照從最低分到最高分的方式排序集合中的成員。集合的成員是唯一的趣斤,但是評分可以是重復的
浓领。因為元素是有序的, 所以你也可以很快的根據(jù)評分(score)或者次序(position)來獲取一個范圍的元素镊逝。訪問有序集合的中間元素也是非吵潘猓快的,因此你能夠使用有序集合
作為一個沒有重復成員的智能列表座菠。
常用命令
-
zadd <key><score1><value1><score2><value2>…
將一個或多個membr
元素及其score
值加入到有序集key
當中浴滴。 -
zrange <key><start><stop> [WITHSCORES]
返回有序集key
中微王,下標在<start><stop>
之間的元素帶WITHSCORES
炕倘,可以讓分數(shù)一起和值返回到結果集罩旋。 -
zrangebyscore key minmax [withscores] [limit offset count]
返回有序集key
中涨醋,所有score
值介于min 和 max
之間(包括等于 min 或 max )的成員浴骂。有序集成員按score
值遞增(從小到大)次序排列。 -
zrevrangebyscore key maxmin [withscores] [limit offset count]
同上,改為從大到小排列。 -
zincrby <key><increment><value>
為元素的score
加上增量芬为。 -
zrem <key><value>
刪除該集合下氧敢,指定值的元素 孙乖。 -
zcount <key><min><max>
統(tǒng)計該集合唯袄,分數(shù)區(qū)間內的元素個數(shù)恋拷。 -
zrank <key><value>
返回該值在集合中的排名宴偿,從0開始窄刘。
6.Redis 哈希(Hash)
簡述
hash
是一個鍵值對集合都哭;是一個string類型的field
和value
的映射表欺矫,hash
特別適合用于存儲對象穆趴。
主要有以下2種存儲方式:
image.png
常用命令
-
hset <key><field><value>
給<key>
集合中的<field>
鍵賦值<value>
空入。 -
hget <key1><field>
從<key1>
集合<field>
取出value
歪赢。 -
hmset <key1><field1><value1><field2><value2>...
批量設置hash的值埋凯。 -
hexists<key1><field>
查看哈希表key
中,給定域field
是否存在。 -
hkeys <key>
列出該hash集合的所有field
沉颂。 -
hvals <key>
列出該hash集合的所有value
兆览。 -
hincrby <key><field><increment>
為哈希表key
中的域field
的值加上增量 1 -1。 -
hsetnx <key><field><value>
將哈希表key
中的域field
的值設置為value
小压,當且僅當域field
不存在 怠益。