国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

猿創(chuàng)征文| redis基本數(shù)據(jù)類型

這篇具有很好參考價值的文章主要介紹了猿創(chuàng)征文| redis基本數(shù)據(jù)類型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


??個人主頁:不斷前進的皮卡丘
??博客描述:夢想也許遙不可及,但重要的是追夢的過程,用博客記錄自己的成長,記錄自己一步一步向上攀登的印記
??個人專欄:微服務(wù)專欄
??redis常見的操作命令:http://www.redis.cn/commands.html

Redis鍵(key)

命令 功能
keys * 查看當(dāng)前庫的所有key
exists key 判斷某個key是否存在
type key 查看某個key的數(shù)據(jù)類型
del key 刪除指定key
unlink key 根據(jù)value選擇非阻塞刪除,僅僅把key從keyspace元數(shù)據(jù)中刪除,真正的刪除會在后續(xù)異步操作,也就是把刪除操作放到其他線程中進行
expire key 10 為key設(shè)置過期時間為10秒鐘
ttl key 查看key還有多少秒過期,-1表示永遠不過期,-2表示已經(jīng)過期
select 切換數(shù)據(jù)庫
dbsize 查看當(dāng)前數(shù)據(jù)庫的key的數(shù)量
flushdb 清空當(dāng)前數(shù)據(jù)庫數(shù)據(jù)
flushall 清除所有數(shù)據(jù)庫數(shù)據(jù)

猿創(chuàng)征文| redis基本數(shù)據(jù)類型
猿創(chuàng)征文| redis基本數(shù)據(jù)類型

string類型

基本介紹

  • String是Redis最基本的類型,一個key對應(yīng)一個value。

  • String類型是二進制安全的。意味著Redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對象。

  • String類型是Redis最基本的數(shù)據(jù)類型,一個Redis中字符串value最多可以是512M

  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

常用操作命令

命令 說明
set 設(shè)置一個key/value
get 根據(jù)key獲得對應(yīng)的value
mset 一次設(shè)置多個key value
mget 一次獲得多個key的value
getset 獲得原始key的值,同時設(shè)置新值
strlen 獲得對應(yīng)key存儲value的長度
append 為對應(yīng)key的value追加內(nèi)容
getrange 索引0開始 截取value的內(nèi)容
setex 設(shè)置一個key存活的有效期(秒)
psetex 設(shè)置一個key存活的有效期(毫秒)
setnx 存在不做任何操作,不存在添加
msetnx原子操作(只要有一個存在不做任何操作) 可以同時設(shè)置多個key,只有有一個存在都不保存
decr 進行數(shù)值類型的-1操作
decrby 根據(jù)提供的數(shù)據(jù)進行減法操作
Incr 進行數(shù)值類型的+1操作
incrby 根據(jù)提供的數(shù)據(jù)進行加法操作
Incrbyfloat 根據(jù)提供的數(shù)據(jù)加入浮點數(shù)

猿創(chuàng)征文| redis基本數(shù)據(jù)類型
猿創(chuàng)征文| redis基本數(shù)據(jù)類型
猿創(chuàng)征文| redis基本數(shù)據(jù)類型

數(shù)據(jù)結(jié)構(gòu)

  • String的數(shù)據(jù)結(jié)構(gòu)為簡單動態(tài)字符串(Simple Dynamic String,縮寫SDS)。是可以修改的字符串,內(nèi)部結(jié)構(gòu)實現(xiàn)上類似于Java的ArrayList,采用預(yù)分配冗余空間的方式來減少內(nèi)存的頻繁分配.
  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型
  • 如圖中所示,內(nèi)部為當(dāng)前字符串實際分配的空間capacity一般要高于實際字符串長度len。當(dāng)字符串長度小于1M時,擴容都是加倍現(xiàn)有的空間,如果超過1M,擴容時一次只會多擴1M的空間。需要注意的是字符串最大長度為512M。

list類型

基本介紹

  • 數(shù)據(jù)存儲要求:存儲多個數(shù)據(jù),并且對數(shù)據(jù)進入存儲空間的順序進行區(qū)分
  • 數(shù)據(jù)的存儲結(jié)構(gòu):一個存儲空間保持多個數(shù)據(jù),而且通過數(shù)據(jù)可以體系進入的順序
  • list數(shù)據(jù)類型:保存多個數(shù)據(jù),底層使用的是雙向鏈表存儲結(jié)構(gòu)實現(xiàn)
  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

常用操作命令

命令 說明
lpush 將某個值加入到一個key列表頭部
lpushx 同lpush,但是必須要保證這個key存在
rpush 將某個值加入到一個key列表末尾
rpushx 同rpush,但是必須要保證這個key存在
lpop 返回和移除列表左邊的第一個元素
rpop 返回和移除列表右邊的第一個元素
lrange 獲取某一個下標(biāo)區(qū)間內(nèi)的元素
llen 獲取列表元素個數(shù)
lset 設(shè)置某一個指定索引的值(索引必須存在)
lindex 獲取某一個指定索引位置的元素
lrem 刪除重復(fù)元素
ltrim 保留列表中特定區(qū)間內(nèi)的元素
linsert 在某一個元素之前,之后插入新元素

猿創(chuàng)征文| redis基本數(shù)據(jù)類型
猿創(chuàng)征文| redis基本數(shù)據(jù)類型

數(shù)據(jù)結(jié)構(gòu)

  • Redis快速表、壓縮表和雙向鏈表(重點介紹quicklist)

  • List的數(shù)據(jù)結(jié)構(gòu)為快速鏈表quickList。

  • 首先在列表元素較少的情況下會使用一塊連續(xù)的內(nèi)存存儲,這個結(jié)構(gòu)是ziplist,也即是壓縮列表。

  • 它將所有的元素緊挨著一起存儲,分配的是一塊連續(xù)的內(nèi)存。
    當(dāng)數(shù)據(jù)量比較多的時候才會改成quicklist。
    因為普通的鏈表需要的附加指針空間太大,會比較浪費空間。比如這個列表里存的只是int類型的數(shù)據(jù),結(jié)構(gòu)上還需要兩個額外的指針prev和next。
    猿創(chuàng)征文| redis基本數(shù)據(jù)類型

  • Redis將鏈表和ziplist結(jié)合起來組成了quicklist。也就是將多個ziplist使用雙向指針串起來使用。這樣既滿足了快速的插入刪除性能,又不會出現(xiàn)太大的空間冗余。

set類型

基本介紹

  • 新需求:存儲大量數(shù)據(jù),并且查詢效率要更高
  • 需要的存儲結(jié)構(gòu):能存儲大量數(shù)據(jù),并且要有高效的內(nèi)部存儲機制,方便查詢
  • set類型:和hash存儲結(jié)構(gòu)完全一樣,但是僅僅存儲鍵,不存儲值,并且值不允許重復(fù)
  • Redis的Set是string類型的無序集合。它底層其實是一個value為null的hash表,所以添加,刪除,查找的復(fù)雜度都是O(1)。
  • set:無序,不可重復(fù)
  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型
  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

常用命令

命令 說明
sadd 為集合添加元素
smembers 顯示集合中所有元素 無序
scard 返回集合中元素的個數(shù)
spop 隨機返回一個元素 并將元素在集合中刪除
smove 從一個集合中向另一個集合移動元素 必須是同一種類型
srem 從集合中刪除一個元素
sismember 判斷一個集合中是否含有這個元素
srandmember 隨機返回元素
sdiff 去掉第一個集合中其它集合含有的相同元素
sinter 求交集
sunion 求和集

猿創(chuàng)征文| redis基本數(shù)據(jù)類型

數(shù)據(jù)結(jié)構(gòu)

Set數(shù)據(jù)結(jié)構(gòu)是dict字典,字典是用哈希表實現(xiàn)的。
Java中HashSet的內(nèi)部實現(xiàn)使用的是HashMap,只不過所有的value都指向同一個對象。Redis的set結(jié)構(gòu)也是一樣,它的內(nèi)部也使用hash結(jié)構(gòu),所有的value都指向同一個內(nèi)部值。

hash

基本介紹

  • Redis hash 是一個鍵值對集合。

  • Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。
    類似Java里面的Map<String,Object>
    猿創(chuàng)征文| redis基本數(shù)據(jù)類型

  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

常用命令

命令 說明
hset key field1 value1 field2 value2 添加/修改數(shù)據(jù)
hget key field1 field2 獲得多個數(shù)據(jù)
hgetall key 獲得所有的數(shù)據(jù)
hdel key field1 field2 刪除數(shù)據(jù)
hexists key field 獲取哈希表中是否存在的字段
hlen key 獲取哈希表中字段的數(shù)量
hkeys key 獲得所有的key
hvals key 獲得所有的value
hmset key field1 value1 field2 value2 添加/修改多個數(shù)據(jù)
hmget key field1 field2 獲得多個數(shù)據(jù)
hsetnx key field value 設(shè)置一個不存在的key的值
hincrby key field increment 為value進行加法運算
hincrbyfloat key field increment 為value加入浮點值

猿創(chuàng)征文| redis基本數(shù)據(jù)類型

注意事項

  • hash類型下的value只能存儲字符串,不允許存儲其他數(shù)據(jù)類型,不存在嵌套現(xiàn)象。如果數(shù)據(jù)未獲取到,對應(yīng)的值為(nil)

  • 每個 hash 可以存儲 2^32 - 1 個鍵值對

  • hash類型十分貼近對象的數(shù)據(jù)存儲形式,并且可以靈活添加刪除對象屬性。但hash設(shè)計初衷不是為了存儲大量對象而設(shè)計的,切記不可濫用,更不可以將hash作為對象列表使用

  • hgetall 操作可以獲取全部屬性,如果內(nèi)部field過多,遍歷整體數(shù)據(jù)效率就很會低,有可能成為數(shù)據(jù)訪問瓶頸

數(shù)據(jù)結(jié)構(gòu)

Hash類型對應(yīng)的數(shù)據(jù)結(jié)構(gòu)是兩種:ziplist(壓縮列表),hashtable(哈希表)。當(dāng)field-value長度較短且個數(shù)較少時,使用ziplist,否則使用hashtable。

Redis有序集合Zset(sorted set)

基本介紹

  • 元素不重復(fù)
  • 有序集合的每個成員都關(guān)聯(lián)了一個評分(score),這個評分(score)被用來按照從最低分到最高分的方式排序集合中的成員。集合的成員是唯一的,但是評分可以是重復(fù)了 。
  • 元素是有序的, 所以可以很快的根據(jù)評分(score)或者次序(position)來獲取一個范圍的元素。
  • 猿創(chuàng)征文| redis基本數(shù)據(jù)類型

基本操作

功能 命令
添加數(shù)據(jù) zadd key score1 member1 [score2 member2]
獲取全部數(shù)據(jù) zrange key start stop[withscores]
獲取全部數(shù)據(jù) zrevrange key start sto[withscores]
刪除數(shù)據(jù) zrem key member [member…]
按照條件獲取數(shù)據(jù) zrangebyscore key min max[withscores][limit] limt用來分頁
按照條件獲取數(shù)據(jù) zrevrangebyscore key max min[withscores]
按照條件刪除數(shù)據(jù) zremrangebyrank key start stop
按照條件刪除數(shù)據(jù) zremrangebyscore key min max
獲取集合數(shù)據(jù)總量 zcard key
獲取集合數(shù)據(jù)總量 zcount key min max
集合交操作 zinterstore destination numkeys key[key…]
集合并操作 zunionstore destination numkeys key[key…]

猿創(chuàng)征文| redis基本數(shù)據(jù)類型

zset類型數(shù)據(jù)的擴展操作

在生活中,其實排序是很常見的,比如好友親密度,投票之類的都需要進行排序,我們需要為所有參加排名的資源來建立排序依據(jù)

功能 命令
獲取數(shù)據(jù)對應(yīng)的索引(排名) zrank key member
獲取數(shù)據(jù)對應(yīng)的索引(排名) zrevrank key member
score值獲取 zscore key member
score值修改 zincrby key increment member

猿創(chuàng)征文| redis基本數(shù)據(jù)類型
猿創(chuàng)征文| redis基本數(shù)據(jù)類型

注意事項

  • score保存的數(shù)據(jù)存儲空間是64位,如果是整數(shù)范圍是-9007199254740992~9007199254740992
  • score保存的數(shù)據(jù)也可以是一個雙精度的double值,基于雙精度浮點數(shù)的特征,可能會丟失精度,使用時候要慎重
  • sorted_set 底層存儲還是基于set結(jié)構(gòu)的,因此數(shù)據(jù)不能重復(fù),如果重復(fù)添加相同的數(shù)據(jù),score值將被反復(fù)覆蓋,保留最后一次修改的結(jié)果

跳表數(shù)據(jù)結(jié)構(gòu)

SortedSet(zset)是Redis提供的一個非常特別的數(shù)據(jù)結(jié)構(gòu),一方面它等價于Java的數(shù)據(jù)結(jié)構(gòu)Map<String, Double>,可以給每一個元素value賦予一個權(quán)重score,另一方面它又類似于TreeSet,內(nèi)部的元素會按照權(quán)重score進行排序,可以得到每個元素的名次,還可以通過score的范圍來獲取元素的列表。
zset底層使用了兩個數(shù)據(jù)結(jié)構(gòu)
(1)hash,hash的作用就是關(guān)聯(lián)元素value和權(quán)重score,保障元素value的唯一性,可以通過元素value找到相應(yīng)的score值。
(2)跳躍表,跳躍表的目的在于給元素value排序,根據(jù)score的范圍獲取元素列表。

Redis源碼之跳表數(shù)據(jù)結(jié)構(gòu)文章來源地址http://www.zghlxwxcb.cn/news/detail-402548.html

到了這里,關(guān)于猿創(chuàng)征文| redis基本數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 猿創(chuàng)征文|vue vant-ui數(shù)據(jù)列表上拉加載更多,下拉刷新功能

    ?????? ? 作者: 船長在船上 ?????? ? 主頁: 來訪地址船長在船上的博客 ?????? ? 簡介: CSDN前端領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,資深前端開發(fā)工程師,專注前端開發(fā),在CSDN總結(jié)工作中遇到的問題或者問題解決方法以及對新技術(shù)的分享,歡迎咨詢交流,共同學(xué)習(xí)。 ??????

    2023年04月12日
    瀏覽(24)
  • 猿創(chuàng)征文|工具百寶箱-數(shù)據(jù)庫連接工具-接口調(diào)試與測試工具-抓包工具

    猿創(chuàng)征文|工具百寶箱-數(shù)據(jù)庫連接工具-接口調(diào)試與測試工具-抓包工具

    工具沒有絕對意義上的好壞之分,只有需求適合與否,這些需求可能包括:功能、價格、安全、服務(wù)、技術(shù)等諸多方面。 技術(shù)在更新迭代,開發(fā)者工具也在更新迭代。一個高效趁手的工具在工作上錦上添花。給大家分享一下我平時用的一部分工具。 官方活動入口:「猿創(chuàng)征

    2023年04月27日
    瀏覽(17)
  • 猿創(chuàng)征文 |【Linux】常用命令

    猿創(chuàng)征文 |【Linux】常用命令

    ?? 博客主頁: ??@不會壓彎的小飛俠 ? 歡迎關(guān)注: ?? 點贊 ?? 收藏 ? 留言 ? ? 系列專欄: ??Linux專欄 ? 歡迎加入社區(qū): ??不會壓彎的小飛俠 ? 人生格言:知足上進,不負野心。 ?? 歡迎大佬指正,一起學(xué)習(xí)!一起加油! command [-options] [parameter] command:命令名 [-o

    2024年01月16日
    瀏覽(56)
  • 猿創(chuàng)征文 | Shell編程【上篇】

    猿創(chuàng)征文 | Shell編程【上篇】

    目錄 1,Shell編程 1.1:簡介 1.1.1:shell解釋器 1.2:快速入門 1.2.1:編寫腳本 1.2.2:執(zhí)行shell腳本 1.3:shell變量 1.3.1:簡介 1.3.2:使用變量 1.3.3:刪除變量 1.3.4:只讀變量 ?1.4:字符串 1.4.1:單引號 1.4.2:雙引號? 1.4.3:獲取字符串長度? ?1.4.4:提取子字符串 ?1.5:傳遞參數(shù) 1

    2024年02月02日
    瀏覽(24)
  • 以太坊是什么?|猿創(chuàng)征文

    以太坊是什么?|猿創(chuàng)征文

    以太坊是一個可編程、可視化、更易用的區(qū)塊鏈,它允許任何人編寫智能合約和發(fā)行代幣。 在以太坊(Ethereum)出現(xiàn)之前,各種區(qū)塊鏈應(yīng)用的功能非常有限,例如,比特幣和其他加密貨幣都只是純粹的數(shù)字貨幣。 以太坊(Ethereum)創(chuàng)始人Vitalik Buterin將以太坊(Ethereum)設(shè)想為開發(fā)人員

    2024年02月02日
    瀏覽(23)
  • 猿創(chuàng)征文|【HTML】標(biāo)簽學(xué)習(xí)之路

    猿創(chuàng)征文|【HTML】標(biāo)簽學(xué)習(xí)之路

    ?? 目錄 一、HTML語法規(guī)范 1.基本語法概述 2.標(biāo)簽關(guān)系 二、HTML基本結(jié)構(gòu)標(biāo)簽 1.第一個HTML頁面 2.HTML基本結(jié)構(gòu)標(biāo)簽總結(jié) 1.基本語法概述 html是由尖括號包圍的,列如: html 。 html標(biāo)簽通常是成對出現(xiàn)的,列如:html和/html,我們稱為 雙標(biāo)簽 。標(biāo)簽對里的第一個標(biāo)簽是開始標(biāo)

    2024年01月16日
    瀏覽(25)
  • 猿創(chuàng)征文|ZooKeeper(偽)集群搭建

    猿創(chuàng)征文|ZooKeeper(偽)集群搭建

    前言:zookeeper作為一款分布式協(xié)調(diào)中間件,其重要性不言而喻,因此需要保證其高可用性。所以一般都會搭建zookeeper集群,今天葉秋帶領(lǐng)大家在一臺服務(wù)器上搭建偽集群。 目錄 1、 搭建要求 2、 準(zhǔn)備工作 3、 配置集群 ?4 啟動集群 ?5 模擬集群異常 1、 搭建要求 真實的集群是

    2024年02月01日
    瀏覽(30)
  • 猿創(chuàng)征文|【深度學(xué)習(xí)前沿應(yīng)用】文本生成

    猿創(chuàng)征文|【深度學(xué)習(xí)前沿應(yīng)用】文本生成

    作者簡介 :在校大學(xué)生一枚,C/C++領(lǐng)域新星創(chuàng)作者,華為云享專家,阿里云專家博主,騰云先鋒(TDP)成員,云曦智劃項目總負責(zé)人,全國高等學(xué)校計算機教學(xué)與產(chǎn)業(yè)實踐資源建設(shè)專家委員會(TIPCC)志愿者,以及編程愛好者,期待和大家一起學(xué)習(xí),一起進步~ . 博客主頁 :

    2024年02月06日
    瀏覽(17)
  • 猿創(chuàng)征文 | Solidity 智能合約技術(shù)成長之路

    猿創(chuàng)征文 | Solidity 智能合約技術(shù)成長之路

    Solidity 是鏈上智能合約的開發(fā)語言,鏈上智能合約相當(dāng)于傳統(tǒng)行業(yè)的后端,鏈上應(yīng)用基本都是由合約 + 前端組成的,雖然不推薦,但部分鏈上應(yīng)用也會加入后端進行數(shù)據(jù)存儲,以降低用戶的使用成本。 Solidity 這門開發(fā)語言并不復(fù)雜,只需要您稍微有一點兒編程基礎(chǔ),英文詞匯

    2024年01月23日
    瀏覽(23)
  • 猿創(chuàng)征文|【云原生】學(xué)習(xí)云原生經(jīng)驗分享

    猿創(chuàng)征文|【云原生】學(xué)習(xí)云原生經(jīng)驗分享

    博主昵稱:跳樓梯企鵝 博主主頁面鏈接: 博主主頁傳送門 博主專欄頁面連接: 專欄傳送門--網(wǎng)路安全技術(shù) 創(chuàng)作初心:本博客的初心為與技術(shù)朋友們相互交流,每個人的技術(shù)都存在短板,博主也是一樣,虛心求教,希望各位技術(shù)友給予指導(dǎo)。 博主座右銘:發(fā)現(xiàn)光,追隨光,

    2024年02月02日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包