Java中redis的基本類型
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è)屬性是type
、encoding
和ptr
屬性。
對象類型分為下邊這幾個(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)文章
java 同步器SynchronousQueue詳解及實(shí)例
這篇文章主要介紹了java 同步器SynchronousQueue詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05Java遠(yuǎn)程調(diào)用組件Feign技術(shù)使用詳解
Feign是Netflix公司開發(fā)的一個(gè)聲明式的REST調(diào)用客戶端; Ribbon負(fù)載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進(jìn)行微服務(wù)開發(fā)非常基礎(chǔ)的組件,在使用的過程中我們也發(fā)現(xiàn)它們一般都是同時(shí)出現(xiàn)的,而且配置也都非常相似2022-11-11SpringMVC使用@ExceptionHandler注解在Controller中處理異常
這篇文章主要為大家介紹了SpringMVC使用@ExceptionHandler注解在Controller中處理異常示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10SpringMVC與Mybatis集合實(shí)現(xiàn)調(diào)用存儲(chǔ)過程、事務(wù)控制實(shí)例
這篇文章主要介紹了SpringMVC與Mybatis集合實(shí)現(xiàn)調(diào)用存儲(chǔ)過程、事務(wù)控制實(shí)例,有需要的可以了解一下。2016-11-11Maven的porfile與SpringBoot的profile結(jié)合使用案例詳解
這篇文章主要介紹了Maven的porfile與SpringBoot的profile結(jié)合使用,通過maven的profile功能,在打包的時(shí)候,通過-P指定maven激活某個(gè)pofile,這個(gè)profile里面配置了一個(gè)參數(shù)activatedProperties,不同的profile里面的這個(gè)參數(shù)的值不同,需要的朋友可以參考下吧2021-12-12springmvc請求轉(zhuǎn)發(fā)和重定向問題(攜帶參數(shù)和不攜帶參數(shù))
這篇文章主要介紹了springmvc請求轉(zhuǎn)發(fā)和重定向問題(攜帶參數(shù)和不攜帶參數(shù)),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10SpringBoot讀取yml文件中配置數(shù)組的2種方法
這篇文章主要介紹了SpringBoot讀取yml文件中配置數(shù)組的2種方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12