Redis
Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。
它通常被稱爲數據結構服務器,因爲值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。
數據存儲類型介紹
String 字符串
Hash 散列
List 列表
Set 集合
Sorted_set 有序集合
List類型
- 數據存儲需求:存儲多個數據,並且對數據進入存儲空間的順序進行區分
- 需要的存儲結構:一個存儲空間保存多個數據,且通過數據可以體現進入順序
- list類型:保存多個數據,底層使用雙向鏈表存儲結構實現
list類型數據基本操作
添加/修改數據
lpush key value1 [value2]......(左)
rpush key value1 [value2]......(右)
獲取數據
lrange key start stop
lindex key index
llen key
獲取並移出數據
lpop key
rpop key
list類型數據擴展操作
規定時間內獲取並且移除數據
blpop key1 [key2] timeout
brpop key1 [key2] timeout
業務場景
微信朋友圈點贊 要求按照點贊順序顯示點贊好友信息
如果取消點贊,移除對應好友信息
解決方案
移除指定數據
lrem key count value
例子
rpush 001 a b c d e
lrange 001 0 -1
顯示:
a
b
c
d
e
現在把d去掉
lrem 001 1 d
lrange 001 0 -1
顯示:
a
b
c
e
list類型數據庫操作注意事項
- list中保存的數據都是string類型的,數據總流量是有限的,最多個元素
- list具有索引的概念,但是操作數據通常以隊列的形式進行入隊出隊操作,或者以棧的形式進行入棧出棧操作
- 獲取全部數據操作結束索引設置爲-1
- list可以對數據進行分頁操作,通常第一頁的信息來自於list 第2頁及更多的信息通過數據庫的形式加載