Redis支援的基本資料結構以及常用操作

2021-10-09 05:54:42 字數 1702 閱讀 3911

redis是目前較為主流的nosql資料庫,它不僅僅支援簡單的key-value型別的資料,同時還提供了string,list,hash,set,zset等資料結構的儲存。

1 string

set key value //設定指定key的值,或者將key之前指定的值修改為當前值

get key //獲取指定key的值

2 hash

hset key field value//將雜湊表key中的字段field的值設定為value

hget city name//獲取雜湊表中key欄位的值

3 list

lpush key value1 //將乙個或多個值插入到列表頭

lpop key //移出並獲取列表的第乙個元素,返回值是移出的元素

4 set

sadd key member1 member2 //向集合中新增乙個或者多個成員

spop key //移除並返回集合中的乙個隨機元素

5 sorted set (zset)

zadd key score member score1 member1 //向有序集合中新增乙個或多個成員,或者更新已經存在成員的分數

zcard key //獲取有序結合中的成員數

redis在2.8.9版本中新增了hyperloglog結構,它是用來做基數統計的演算法,hyperloglog的優點是,在輸入元素的數量或者體積非常非常大時,計數基數所需要的空間總是固定的,並且時很小的。

在redis中,每個hyperloglog鍵只需要花費12kb記憶體,就可以計算接近2^64個不同元素的基數。這不同於和計數基數時,元素越多耗費記憶體就越多的集合。但是,因為hyperloglog只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以hyperloglog不能像結合那樣,返回輸入的各個元素。

補充基數:如資料集,那麼整個資料集的基數集為,則基數為5,即不重複的資料的個數。基數估計就是在誤差可接受的範圍內,快速計算基數。

pfadd key element //新增指定元素到hyperloglog中

pfcount key //返回給定的hyperloglog的基數估算值

redis基本資料結構 1

redis的作者為了方便自己的使用,在redis中定義了動態字串sds,鍊錶,字典dict,跳躍表skiplist,整數集合intset和壓縮列表ziplist這六種資料結構。下文,我簡要地介紹一下幾種資料結構的定義。sds的全稱叫 dynamic string,它的定義和注釋如下 struct s...

redis基本資料結構概述

redis 有 5 種基礎資料結構,分別為 string 字串 list 列表 hash 雜湊 set 集合 和 zset 有序集合 以下圖示並不代表記憶體連續,僅僅只是邏輯表述。因為redis的key值為字串,當我們使用字串型別作為value時,我們是在將乙個字串對映另乙個字串。member是不可...

Redis中的基本資料結構

資料結構typedef struct sdstrsds是字串物件的底層實現之一 sds的特性 賦值操作會統計字串的長度然後將字串存入buff裡面,同時設定長度和使用的長度 例如 hello 這個字串的儲存結構如下 修改的時候會比較麻煩,分為兩種情況 一是由段字串變長 例如 由 hello 變為 he...