存儲String字元串,使用get,set命令,一個鍵最大存儲512M 存儲Hash哈希,使用HMSET和HGETALL命令,參數:鍵,值 例如:HMSET user:1 username taoshihan password taoshihan HGETALL user:1 存儲List列表,可以 ...
存儲String字元串,使用get,set命令,一個鍵最大存儲512M
存儲Hash哈希,使用HMSET和HGETALL命令,參數:鍵,值
例如:HMSET user:1 username taoshihan password taoshihan
HGETALL user:1
存儲List列表,可以重覆,使用命令lpush和lrange,lpush的參數:鍵,值1,值2…
例如:lpush infos taoshihan nan
lrange的參數:鍵,開始索引,結束索引
例如:lrange infos 0 -1 (-1是全部)
存儲Set集合,不可以重覆,使用命令sadd和smembers
sadd的參數:鍵,值1,值2…
例如:sadd users zhangsan li wangwu
smembers的參數:鍵
例如:smembers users
存儲Zset有序集合,不可以重覆,使用命令zadd和zrangebyscore
zadd的參數:鍵,分數 值1 分數2 值2…
例如:zadd members 1 zhangsan 2 li 3 wangwu
zrangebyscore的參數:鍵,開始索引,結束索引
例如:zrangebyscore users 0 1
知乎:redis的基本數據結構有哪些,都有什麼應用?
李波:
簡單說明如下
字元串(strings):存儲整數(比如計數器)和字元串(廢話。。),有些公司也用來存儲json/pb等序列化數據,並不推薦,浪費記憶體
哈希表(hashes):存儲配置,對象(比如用戶、商品),優點是可以存取部分key,對於經常變化的或者部分key要求atom操作的適合
列表(lists):可以用來存最新用戶動態,時間軸,優點是有序,缺點是元素可重覆,不去重
集合(sets):無序,唯一,對於要求嚴格唯一性的可以使用
有序集合(sorted sets):集合的有序版,很好用,對於排名之類的複雜場景可以考慮
點陣圖(bitmaps):這個不是新增的數據類型,只是可以把字元串類型按照單個位的形式進行操作,沒有實際使用過。2016-03-03更新,網上很多人用bitmaps來做活躍用戶統計和用戶簽到功能,性能比去資料庫load高很多。
計數器(hyperloglogs,翻譯待定):如名字,添加元素只記錄元素個數,並不會存儲元素本身,節省空間並且避免重覆count,這個感覺直接用incr就可以實現
地理空間(geospatial indexes):用來做地理位置查詢,比如兩點之間的距離,一個點附近有多少元素,適合點比較固定的場景,或者只考慮當前位置的場景,像附近的人這種就不適合,一是需要考慮某段時間內的點,二是點經常更新,壓力比較大