Redis(3)----數據類型List

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類型的,數據總流量是有限的,最多23212^32-1個元素
  • list具有索引的概念,但是操作數據通常以隊列的形式進行入隊出隊操作,或者以棧的形式進行入棧出棧操作
  • 獲取全部數據操作結束索引設置爲-1
  • list可以對數據進行分頁操作,通常第一頁的信息來自於list 第2頁及更多的信息通過數據庫的形式加載
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章