欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中redis的基本類型

 更新時(shí)間:2022年03月21日 09:08:12   作者:周杰倫本人  
這篇文章主要介紹了Java中redis的基本類型,redis存儲(chǔ)數(shù)據(jù)的基本類型有:字符串類型、散列類型、列表類型、集合類型、有序集合類型,下面我們對其中幾個(gè)進(jìn)行簡單介紹,需要的小伙伴可以參考一下

redis存儲(chǔ)數(shù)據(jù)的基本類型有:string(字符串類型)、hash(散列類型)、list(列表類型)、set(集合類型)、zset(有序集合類型)。

redis中的每個(gè)對象都由一個(gè)redisObject結(jié)構(gòu)來表示:

/*
?* Redis 對象
?*/
typedef struct redisObject {

? ? // 類型
? ? unsigned type:4; ? ? ? ?

? ? // 不使用(對齊位)
? ? unsigned notused:2;

? ? // 編碼方式
? ? unsigned encoding:4;

? ? // LRU 時(shí)間(相對于 server.lruclock)
? ? unsigned lru:22;

? ? // 引用計(jì)數(shù)
? ? int refcount;

? ? // 指向?qū)ο蟮闹?
? ? void *ptr;

} robj;

和保存數(shù)據(jù)有關(guān)的三個(gè)屬性是typeencodingptr屬性。

對象類型分為下邊這幾個(gè),我們是用type命令可以查看對象類型

/*
?* 對象類型
?*/
#define REDIS_STRING 0
#define REDIS_LIST 1
#define REDIS_SET 2
#define REDIS_ZSET 3
#define REDIS_HASH 4

對象的ptr指針指向?qū)ο蟮牡讓訉?shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)由對象的encoding屬性決定。

編碼類型

/*
?* 對象編碼
?*
?* 像 String 和 Hash 這樣的對象,可以有多種內(nèi)部表示。
?* 對象的 encoding 屬性可以設(shè)置為以下域的任意一種。
?*/
#define REDIS_ENCODING_RAW 0 ? ? /* Raw representation 簡單動(dòng)態(tài)字符串*/
#define REDIS_ENCODING_INT 1 ? ? /* Encoded as integer long類型的整數(shù)*/
#define REDIS_ENCODING_HT 2 ? ? ?/* Encoded as hash table 字典*/
#define REDIS_ENCODING_ZIPMAP 3 ?/* Encoded as zipmap 壓縮字典*/
#define REDIS_ENCODING_LINKEDLIST 4 /* Encoded as regular linked list 雙端鏈表*/
#define REDIS_ENCODING_ZIPLIST 5 /* Encoded as ziplist 壓縮列表*/
#define REDIS_ENCODING_INTSET 6 ?/* Encoded as intset 整數(shù)集合*/
#define REDIS_ENCODING_SKIPLIST 7 ?/* Encoded as skiplist 跳躍表和字典*/
#define REDIS_ENCODING_EMBSTR 8 ?/* Embedded sds string encoding embstr編碼的簡單動(dòng)態(tài)字符串*/

可以通過object encoding命令查看數(shù)據(jù)庫鍵的值對象的編碼

通過encoding屬性來設(shè)定對象所使用的編碼,而不是為特定類型的對象關(guān)聯(lián)一種固定的編碼,極大提升了redis的靈活性和效率,根據(jù)不同的使用場景來為對象設(shè)置不同的編碼

不同數(shù)據(jù)結(jié)構(gòu)的編碼方式:

到此這篇關(guān)于Java中redis的基本類型的文章就介紹到這了,更多相關(guān)redis類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論