1. 程式人生 > 實用技巧 >Redis學習—— Redis 簡介

Redis學習—— Redis 簡介

1. 什麼是 Redis? Redis 是一個使用 ANSI C 編寫的開源,支援網路,基於記憶體,可選永續性的鍵值對儲存資料庫。從2015 年 6 月開始,Redis 的開發由 Redis Labs 贊助,而2013 年 5 月至 2015 年6月期間,其開發由 Pivotal 贊助。在 2013 年 5 月之前,其開發由 VMware 贊助。根據月度排行網站 DB-Engines.com 的資料顯示,Redis是 最流行的鍵值對儲存資料庫。 2. Redis 特點
  • Redis 支援資料的持久化,可以將記憶體的資料儲存在磁碟中,重啟的時候可以再次載入進行使用,不會造成資料丟失
  • Redis 支援五種不同的資料結構型別之間的對映,包括簡單的 key/value 型別的資料,同時還提供 list,set,zset,hash 等資料結構的儲存
  • Redis 支援 master-slave 模式的資料備份
3. Redis 中的五種資料型別簡介 String(字串) String 是 redis 中最基本的資料型別,redis 中的 String 型別是二進位制安全的,即它可以包含任何資料,比如是一個序列化的物件或者一個 jpg 圖片,但要注意的是 redis 中的字串上限是 512M List(列表) List 是一個簡單的字串列表,按照插入順序進行排序,我們可以從 List 頭部(left)或者尾部(right)插入一個元素,也可以從頭部或者尾部彈出一個元素 Hash(雜湊) HASH 類似於 Java 中的 Map ,是一個鍵值對集合,在 redis 中可以用來儲存物件 Set(無序集合)
Set 是 String 型別的無序集合,不同於 List ,Set 中的元素不可以重複 Zset(有序集合) Zset 和 Set,也是 String 型別的元素的集合,不同的是 Zset 中的每個元素都會關聯一個 double 型別的分數,Zset 中的成員都是唯一的,但是所關聯的分數可以重複 OK,通過上面的介紹,相信小夥伴們對五大資料型別都有一個大致的認識了,接下來我們就來看看這五種資料型別要怎麼操作。 4. key 相關命令 由於五大資料型別的資料結構本身有差異,因此對應的命令也會不同,但是有一些命令不管對於哪種資料型別都是存在的,我們現在就先來看看這樣一些特殊的命令 如果還沒安裝 redis 的朋友可以看一下我另外一篇: SET 命令
# 設定 k1 的值為 v1,看到 ok 表示設定成功 
127.0.0.1:6379> set k1 v1
OK
DEL 命令
# 通過 del 命令刪除一個已經存在的 key,看到 (integer) 1 表示刪除成功 
127.0.0.1:6379> del k1
(integer) 1
dump 命令
# 通過 dump 命令序列化已經存在的 key,並返回序列化後的值 
127.0.0.1:6379> dump k1 
"\x00\x06action\t\x00|0\xd1\xd31|-r"
exists 命令
# 通過 exists 命令來判斷給定 key 是否存在,如果存在,返回 1,否則返回 0 
127.0.0.1:6379> exists k1 (integer) 1 127.0.0.1:6379> exists k2 (integer) 0
TTL 命令
# 通過 ttl 命令 查詢 key 的過期時間 
# -1 表示 key 存在並且沒有設定過期時間(永久有效)
# -2 表示 key 不存在或者已過期 
127.0.0.1:6379> ttl k1 
(integer) -1 
127.0.0.1:6379> ttl action 
(integer) -2
expire 命令
# EXPIRE 命令可以給 key 設定有效期,在有效期過後,key 會被銷燬,second 表示秒數 
127.0.0.1:6379> expire k1 second (integer) 1
persist 命令
PERSIST 命令表示移除一個 key 的過期時間,這樣該 key 就永遠不會過期
pexpire 命令
# PEXPIRE 命令的功能和 EXPIRE 命令的功能基本一致,只不過這裡設定的引數是毫秒 
127.0.0.1:6379> PEXPIRE k1 60000 (integer) 1
PTTL 命令
# PTTL 命令和 TTL 命令基本一致,只不過 PTTL 返回的是毫秒數 
127.0.0.1:6379> PTTL k1 
(integer) 25421
KEYS 命令
# KEYS 命令可以獲取滿足給定模式的所有 key 
# KEYS * 表示獲取所有的 KEY, * 也可以是一個正則表示式。 
127.0.0.1:6379> KEYS * 
1) "k3" 
2) "k2" 
3) "k1"
OK,key 相關的命令我們就介紹這麼多,當然還有很多其他的,小夥伴們可以參考官方文件。小夥伴在看官方文件時,有什麼問題歡迎留言討論。