共計 4174 個字符,預計需要花費 11 分鐘才能閱讀完成。
怎樣進行 Redis 入門的解析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1. Redis 簡介
Redis (REmote dictionary server) 遠程字典服務器,以字典結構存儲數據。
目前支持的鍵值類型包括:
字符串,散列,列表,集合類型,有序集合
Redis 所有數據在內存中,讀取速度快,但是程序退出后,內存數據會丟失,所以 redis 支持異步數據持久化。
Redis 功能豐富,也可以用作緩存,隊列系統
Redis 和 memcached 很類似,都是基于 key value 的內存數據庫
使用簡單,如果查詢的 sql 如下
select title from posts where id = 1 limit 1
如果使用 redis 語句,如下: HGET post:1 title
幾十種客戶端編程語言支持,提供了豐富的庫
2 入門命令測試
2.1 多數據庫
redis 默認提供 16 個數據庫,0-15,測試如下
redis 127.0.0.1:6379 ping
redis 127.0.0.1:6379 KEYS *
1) logn
redis 127.0.0.1:6379 select 111
(error) ERR invalid DB index
redis 127.0.0.1:6379[111] select 16
(error) ERR invalid DB index
redis 127.0.0.1:6379[16] select 15
redis 127.0.0.1:6379[15] KEYS *
(empty list or set)
redis 127.0.0.1:6379[15] select 0
redis 127.0.0.1:6379 keys *
1) logn
redis 127.0.0.1:6379
通過 select 命令切換數據庫
不支持數據庫重命名
一個空的 redis 實例占用 1M 內存,輕量級
2.2 鍵值相關命令
SET
GET
KEYS
DEL
TYPE
EXISTS
redis 127.0.0.1:6379 SET logn= hello redis
(error) ERR wrong number of arguments for set command
redis 127.0.0.1:6379 SET logn= helloredis
(error) ERR wrong number of arguments for set command
redis 127.0.0.1:6379 SET logn helloredis
redis 127.0.0.1:6379 GET logn
helloredis
redis 127.0.0.1:6379 TYPE logn
string
redis 127.0.0.1:6379 EXIST logn
(error) ERR unknown command EXIST
redis 127.0.0.1:6379 EXISTS logn
(integer) 1
redis 127.0.0.1:6379 DEL logn
(integer) 1
redis 127.0.0.1:6379 DEL logn
(integer) 0
redis 127.0.0.1:6379 EXISTS logn
(integer) 0
redis 127.0.0.1:6379
2.3 incr 和 decr
redis 127.0.0.1:6379 incr num
(integer) 1
redis 127.0.0.1:6379 incr num
(integer) 2
redis 127.0.0.1:6379 incr num
(integer) 3
redis 127.0.0.1:6379 incrby num 4
(integer) 7
redis 127.0.0.1:6379 decrby num 2
(integer) 5
redis 127.0.0.1:6379 decr num
(integer) 4
redis 127.0.0.1:6379
2.4 批量設置,讀取 MSET,MGET
redis 127.0.0.1:6379 MSET a1 1 a2 2 a3 3
redis 127.0.0.1:6379 MGET a1
1) 1
redis 127.0.0.1:6379 KEYS *
1) a2
2) a3
3) num
4) a1
redis 127.0.0.1:6379 MGET a2
1) 2
redis 127.0.0.1:6379 MGET a3
1) 3
redis 127.0.0.1:6379
2.5 散列類型
car:1—– name— value
HSET, HGET,
redis 127.0.0.1:6379 HSET car1 name AUDIO
(integer) 0
redis 127.0.0.1:6379 HSET car1 price 30w
(integer) 1
redis 127.0.0.1:6379 HSET car2 name AUDIO
(integer) 0
redis 127.0.0.1:6379 HSET car2 price 20w
(integer) 1
redis 127.0.0.1:6379 HGET car2 name
AUDIO
redis 127.0.0.1:6379 HGET car1 price
30w
redis 127.0.0.1:6379
設置多個 field,利用 HMSET
redis 127.0.0.1:6379 HMSET car3 name buick price 10w
OK
判斷 field 是否存在 HEXISTS
redis 127.0.0.1:6379 HEXISTS car3 name
(integer) 1
redis 127.0.0.1:6379 HEXISTS car3 notexist
(integer) 0
增加命令 HINCRBY
刪除命令 HDEL
獲取 field 或者 value
redis 127.0.0.1:6379 HKEYS car1
1) name
2) price
redis 127.0.0.1:6379 HKEYS car2
1) name
2) price
redis 127.0.0.1:6379 HKEYS car3
1) name
2) price
redis 127.0.0.1:6379 HVALS car1
1) AUDIO
2) 30w
redis 127.0.0.1:6379 HVALS car2
1) AUDIO
2) 20w
redis 127.0.0.1:6379 HVALS car3
1) buick
2) 10w
redis 127.0.0.1:6379
2.6 列表類型
1,一個列表類型鍵和散列一樣,最多 2^32- 1 個元素
2. 利用雙向鏈表實現,向兩端添加元素時間復雜度是 o(1),獲取越接近兩端的元素速度越快。這意味著一個幾千萬的元素的列表,或者頭部或者尾部的十條記錄也是很快的。(和只有 20 個元素的列表中獲取頭部或者尾部的 10 條記錄速度是一樣的)。兩端插入時間復雜度同樣為 o(1)這種特性用于社交網絡中的新鮮事,日志管理等,可以解決關系數據庫無法應付的場景。
3. 缺點是通過索引訪問比較慢,一個一個查找。
常用命令,LPUSH,LPOP,RPUSH,RPOP,LRANGE
redis 127.0.0.1:6379 LPUSH numbers 3
(integer) 1
redis 127.0.0.1:6379 LPUSH numbers 2 1
(error) ERR wrong number of arguments for lpush command
redis 127.0.0.1:6379 LPUSH numbers 2
(integer) 2
redis 127.0.0.1:6379 RPUSH numbers 5
(integer) 3
redis 127.0.0.1:6379 LPOP numbers
redis 127.0.0.1:6379 RPOO number
(error) ERR unknown command RPOO
redis 127.0.0.1:6379 RPOO numbers
(error) ERR unknown command RPOO
redis 127.0.0.1:6379 RPOP numbers
redis 127.0.0.1:6379 LRANGE 0 2
(error) ERR wrong number of arguments for lrange command
redis 127.0.0.1:6379 LRANGE numbers 0 2
1) 3
redis 127.0.0.1:6379
2.7 集合類型
redis 127.0.0.1:6379 SADD letters a b c
(integer) 3
redis 127.0.0.1:6379 SMEMBERS letters
1) c
2) a
3) b
redis 127.0.0.1:6379 SREM a
(error) ERR wrong number of arguments for srem comman
redis 127.0.0.1:6379 SREM letters a
(integer) 1
redis 127.0.0.1:6379 SADD letters2 c d e
(integer) 3
redis 127.0.0.1:6379 SDIFF letters letters2
1) b
redis 127.0.0.1:6379 SDIFF letters2 letters
1) d
2) e
redis 127.0.0.1:6379 SMEMBERS letters
1) c
2) b
redis 127.0.0.1:6379 SMEMBERS letters2
1) c
2) d
3) e
redis 127.0.0.1:6379
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。