Redis基本命令

使用客戶端工具

bin/redis-cli 

測試命令

127.0.0.1:6379> ping
PONG

數據庫

redis 可以提供16個數據庫

通過select 選擇,默認是0數據庫

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
 1) "num"
 2) "myb2"
 3) "mylist2"
 4) "myhash"
 5) "myb1"
 6) "myset"
 7) "name"
 8) "eclipse"
 9) "myb3"
10) "name2"
11) "mya1"
12) "mylist"
13) "mya2"
14) "mysort"
15) "myahs"
16) "aa1"
17) "mya3"

清空數據庫

flushall

基本數據

存數據

127.0.0.1:6379> set name zhangsan
OK

獲取數據

127.0.0.1:6379> get name
"zhangsan"

刪除數據

127.0.0.1:6379> del name
(integer) 1

查看所有的key

127.0.0.1:6379> keys *
1) "name2"
2) "name"

查看匹配可以

127.0.0.1:6379> keys a*
1) "abc"
2) "aa1"

數字遞增

127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> 

如果不存在會設置初始值為0,然后+1

數字遞減

127.0.0.1:6379> decr num
(integer) 1
127.0.0.1:6379> get num
"1"
127.0.0.1:6379> decr num
(integer) 0
127.0.0.1:6379> get num
"0"
127.0.0.1:6379> 
127.0.0.1:6379> decr num
(integer) -1
127.0.0.1:6379> get num
"-1"

數字增加指定的值

127.0.0.1:6379> incrby num 5
(integer) 4
127.0.0.1:6379> incrby num 5
(integer) 9
127.0.0.1:6379> 

數字減去指定的值

127.0.0.1:6379> decrby num 3
(integer) 6
127.0.0.1:6379> decrby num 3
(integer) 3
127.0.0.1:6379> decrby num 3
(integer) 0
127.0.0.1:6379> 

拼接字符串

127.0.0.1:6379> append name laoli
(integer) 13
127.0.0.1:6379> get name
"zhangsanlaoli"

重命名KEY

127.0.0.1:6379> set a1 a1
OK
127.0.0.1:6379> get a1
"a1"
127.0.0.1:6379> rename a1 aa1
OK
127.0.0.1:6379> get a1
(nil)
127.0.0.1:6379> get aa1
"a1"

設置過期時間
單位秒

127.0.0.1:6379> get abc
"abc"
127.0.0.1:6379> expire abc 10
(integer) 1
127.0.0.1:6379> get abc
"abc"
127.0.0.1:6379> get abc
(nil)

查看超時時間

127.0.0.1:6379> set abc abc
OK
127.0.0.1:6379> get abc
"abc"
127.0.0.1:6379> ttl abc
(integer) -1
127.0.0.1:6379> expire abc 100
(integer) 1
127.0.0.1:6379> ttl abc
(integer) 96
127.0.0.1:6379> 

獲取key存儲的數據類型

127.0.0.1:6379> type abc
string
127.0.0.1:6379> type mylist
list
127.0.0.1:6379> type myset
set

Hash 類型

設值

127.0.0.1:6379> hset myhash uname zhangsan
(integer) 1
127.0.0.1:6379> hset myhash age 18
(integer) 1

設置多個值

127.0.0.1:6379> hmset myhash2 uname zhangs age 11
OK

取值

127.0.0.1:6379> hget myhash uname
"zhangsan"

一次取多個值

127.0.0.1:6379> hmget myhash uname age
1) "zhangsan"
2) "18"

獲取全部值

127.0.0.1:6379> hgetall myhash
1) "uname"
2) "zhangsan"
3) "age"
4) "18"

刪除一個值

127.0.0.1:6379> hdel myhash2 uname age
(integer) 2
127.0.0.1:6379> hgetall myhash2
(empty list or set)

刪除不存在的

127.0.0.1:6379> hdel myhash2 uname
(integer) 0

刪除整個集合

127.0.0.1:6379> hmset myhash2 uname zhangs age 21
OK
127.0.0.1:6379> del myhash2
(integer) 1
127.0.0.1:6379> hget myhash2 uname
(nil)

增加數據

127.0.0.1:6379> hget myhash age
"18"
127.0.0.1:6379> hincrby myhash age 5
(integer) 23
127.0.0.1:6379> hget myhash age
"23"

判斷hash中某個鍵值是否存在

127.0.0.1:6379> hexists myhash uname
(integer) 1

1表示存在,0表示不存在

獲取HASH中的鍵值對數量

127.0.0.1:6379> hgetall myhash
1) "uname"
2) "zhangsan"
3) "age"
4) "23"
127.0.0.1:6379> hlen myhash
(integer) 2

獲取Hash中所有的key

127.0.0.1:6379> hkeys myhash
1) "uname"
2) "age"

獲取hash中所有的值

127.0.0.1:6379> hvals myhash
1) "zhangsan"
2) "23"

數據結構list

ArrayList使用數組方式, LinkedList使用雙向鏈表

從左側向列表中添加數據

127.0.0.1:6379> lpush mylist a b c
(integer) 3
127.0.0.1:6379> lpush mylist 1 2 3
(integer) 6
127.0.0.1:6379> 

右側添加

127.0.0.1:6379> rpush mylist2 a b c
(integer) 3
127.0.0.1:6379> rpush mylist2 1 2 3
(integer) 6

查看列表

127.0.0.1:6379> lrange mylist 0 5
1) "3"
2) "2"
3) "1"
4) "c"
5) "b"
6) "a"

后面指定范圍,可以是負數,負數從后面開始

彈出列表中的元素
左側彈出

127.0.0.1:6379> lpop mylist
"3"

右側彈出

127.0.0.1:6379> rpop mylist2
"3"

獲取列表中的元素數量

127.0.0.1:6379> llen mylist
(integer) 5

lrem 刪除

lset 設置某個index 的值

插入 linsert 列表 before index value

rpoplpush 列表1 列表2 從一個隊列中移除添加到另外一個隊列中

數據結構set

Set不允許出現重復的元素

添加

127.0.0.1:6379> sadd myset a b c
(integer) 3
127.0.0.1:6379> sadd myset a 
(integer) 0

刪除

127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
127.0.0.1:6379> srem myset 1 2
(integer) 2

查看

127.0.0.1:6379> smembers myset
1) "a"
2) "b"
3) "c"
4) "3"

判斷是否存在

127.0.0.1:6379> sismember myset a
(integer) 1
127.0.0.1:6379> sismember myset x
(integer) 0

1表示存在,0表示不存在

差集運算

127.0.0.1:6379> sadd mya1 a b c
(integer) 3
127.0.0.1:6379> sadd myb1 a c 1 2
(integer) 4
127.0.0.1:6379> sdiff mya1 myb1
1) "b"

交集運算

127.0.0.1:6379> sadd mya2 a b c
(integer) 3
127.0.0.1:6379> sadd myb2 a c 1 2
(integer) 4
127.0.0.1:6379> sinter mya2 myb2
1) "a"
2) "c"

并集運算

127.0.0.1:6379> sadd mya3 a b c
(integer) 3
127.0.0.1:6379> sadd myb3 a c 1 2
(integer) 4
127.0.0.1:6379> sunion mya3 myb3
1) "2"
2) "a"
3) "1"
4) "c"
5) "b"

獲取set中的成員數量

127.0.0.1:6379> scard myset
(integer) 4

隨機返回一個

127.0.0.1:6379> srandmember myset
"b"
127.0.0.1:6379> srandmember myset
"c"
127.0.0.1:6379> srandmember myset
"a"

存儲交集、并集、差集到一個新的集合中
sdiffstore sinterstore sunionstore

sorted-set

排序,有個分數

添加

127.0.0.1:6379> zadd mysort 70 zhangsan 80 lisi 90 wangwu
(integer) 3
127.0.0.1:6379> zadd mysort 100 zhangsan
(integer) 0
127.0.0.1:6379> zadd mysort 60 tom
(integer) 1

獲取分數

127.0.0.1:6379> zscore mysort zhangsan
"100"

或成員數量

127.0.0.1:6379> zcard mysort
(integer) 4

刪除

127.0.0.1:6379> zrem mysort tom wangwu
(integer) 2
127.0.0.1:6379> zcard mysort
(integer) 2

范圍查找

127.0.0.1:6379> zadd mysort 85 jack 95 rose
(integer) 2
127.0.0.1:6379> zrange mysort 0 -1
1) "lisi"
2) "jack"
3) "rose"
4) "zhangsan"

顯示分數

127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "lisi"
2) "80"
3) "jack"
4) "85"
5) "rose"
6) "95"
7) "zhangsan"
8) "100"

從大到小

127.0.0.1:6379> zrevrange mysort 0 -1 withscores
1) "zhangsan"
2) "100"
3) "rose"
4) "95"
5) "jack"
6) "85"
7) "lisi"
8) "80"

范圍刪除
zremrangebyrank mysort 0 4

按照分數刪除
zremrangebyscore mysort 80 100

事物

開啟事物
multi

提交事物
exec

回滾事物
discard




圖形化客戶端工具 Redis Desktop Manager 更好用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380