最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文快速搞懂Redis的幾種數據類型方式

 更新時間:2022年10月26日 09:51:27   作者:小馬 同學  
這篇文章主要介紹了一文快速搞懂Redis的幾種數據類型方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Redis簡介

Redis 是一個開源(BSD許可)的,內存中的數據結構存儲系統(tǒng),它可以用作數據庫、緩存和消息中間件。

它支持多種類型的數據結構,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 與范圍查詢, bitmaps, hyperloglogs 和 地理空間(geospatial) 索引半徑查詢。

Redis 內置了 復制(replication),LUA腳本(Lua scripting), LRU驅動事件(LRU eviction),事務(transactions) 和不同級別的 磁盤持久化(persistence), 并通過 Redis哨兵(Sentinel)和自動 分區(qū)(Cluster)提供高可用性(high availability)。

Redis有幾種數據類型

Redis是一個以key-value存儲系統(tǒng),一個Key鍵值對應一個value值,鍵值不能重復,它支持存儲的value類型有5種。 

Redis支持五種數據類型:

  • String(字符串)
  • List(列表)
  • Set(集合)
  • Hash(哈希)
  • Zset(sorted set:有序集合)

Redis的基本指令

在講數據類型前先來看一下Redis的基本指令,主要是針對Key鍵值和的一些操作。

Redis默認16個數據庫,類似數組下標從0開始,初始默認使用0號庫

可以通過以下指令來修改默認存放的數據庫

select   <dbid>        如: select 1 

Redis針對Key鍵值的一些基本操作。

keys * 			查詢當前庫的所有鍵,返回鍵值
exists  <key>     	判斷某個鍵是否存在,返回0或1
type  <key>			查看鍵的類型
del  <key>			刪除某個鍵
expire   <key>   <seconds>		為鍵值設置過期時間,單位秒
ttl   <key>			查看還有多少秒過期,-1表示永不過期,-2表示已過期
dbsize					查看當前數據庫的key的數量

Demo樣例,初始Redis中有a,b兩個鍵。

清空Redis庫的兩個指令

Flushdb		清空當前庫
Flushall		清空全部庫

String(字符串)

  • String是Redis最基本的類型,你可以理解成與Memcached一模一樣的類型,一個key對應一個value。
  • String類型是二進制安全的。意味著Redis的string可以包含任何數據。比如jpg圖片或者序列化的對象 。
  • String類型是Redis最基本的數據類型,一個Redis中字符串value最多可以是512M

基本指令:

set   <key>  <value>		添加鍵值
get   <key>			查詢對應的鍵值
append  <key>  <value>		將給定的<value> 追加到原鍵值的末尾
strlen  <key>			獲取鍵值的長度
setnx  <key>  <value>			只有在 key 不存在時設置 key 的值
incr  <key>				將 key 中儲存的數字值自增1,只能對數字值操作,如果為空,新增值為1
decr  <key>				將 key 中儲存的數字值減1,只能對數字值操作,如果為空,新增值為-1
incrby / decrby  <key>  <步長>			將 key 中儲存的數字值增 / 減。自定義步長。

mset  <key1>  <value1>  <key2>  <value2> ....		同時設置一個或多個 key-value對 
mget  <key1>   <key2>   <key3> .....					同時獲取一個或多個 value
msetnx <key1>  <value1>  <key2>  <value2>  .....		同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在。
getrange  <key>  <起始位置>  <結束位置>			獲得值的范圍,類似java中的substring
setrange  <key>   <起始位置>   <value>				用 <value>  覆寫<key> 所儲存的字符串值,從<起始位置>開始。
setex  <key>  <過期時間>   <value>					設置鍵值的同時,設置過期時間,單位秒。
getset <key>  <value>											以新?lián)Q舊,設置了新值同時獲得舊值。

Demo樣例

List(列表)

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)。

它的底層實際是個雙向鏈表,對兩端的操作性能很高,通過索引下標的操作中間的節(jié)點性能會較差。

基本指令:

lpush/rpush  <key>  <value1>  <value2>  <value3> ....			從左邊/右邊插入一個或多個值。
lpop/rpop  <key> 				從左邊/右邊吐出一個值并刪除。值在鍵在,值亡鍵亡。
rpoplpush  <key1>  <key2> 		從<key1>列表右邊吐出一個值,插到<key2>列表左邊。
lrange <key> <start> <stop>		按照索引下標獲得元素(從左到右)
lindex <key> <index>					按照索引下標獲得元素(從左到右)
llen <key>			獲得列表長度 
linsert <key>  before <value>  <newvalue>	在<value>的前面插入<newvalue> 插入值
lrem <key> <n>  <value>		從左邊刪除n個value(從左到右)

Demo樣式

**加粗樣式**

Set(集合)

Redis set對外提供的功能與list類似是一個列表的功能,特殊之處在于set是可以自動排重的,當你需要存儲一個列表數據,又不希望出現重復數據時,set是一個很好的選擇,并且set提供了判斷某個成員是否在一個set集合內的重要接口,這個也是list所不能提供的。

Redis的Set是string類型的無序集合。它底層其實是一個value為null的hash表,所以添加,刪除,查找的復雜度都是O(1)。

基本指令:

sadd <key>  <value1>  <value2> .....   		將一個或多個 value元素加入到集合 key 當中,已經存在于集合的 value 元素將被忽略。
smembers <key>		取出該集合的所有值。
sismember <key>  <value>			判斷集合<key>是否為含有該<value>值,有返回1,沒有返回0
scard   <key>		返回該集合的元素個數。
srem <key> <value1> <value2> ....			刪除集合中的某個元素。
spop <key>		隨機從該集合中吐出一個值并刪除。
srandmember <key> <n>		隨機從該集合中取出n個值。不會從集合中刪除
sinter <key1> <key2>		返回兩個集合的交集元素。
sunion <key1> <key2>  	返回兩個集合的并集元素。
sdiff <key1> <key2>		返回兩個集合的差集元素。

Demo樣式

Hash(哈希)

  • Redis hash 是一個鍵值對集合。
  • Redis hash是一個string類型的field和value的映射表,hash特別適合用于存儲對象。
  • 類似Java里面的Map<String,String>

基本指令:

hset <key>  <field>  <value>		設置<key>集合中指定字段的值
hget <key>  <field>		從<key>集合取出字段的value
hmset <key>  <field1> <value1> <field2> <value2>...		批量設置hash的值
hexists key  <field>		查看哈希表 key 中,給定域 field 是否存在。
hkeys <key>		列出該hash集合的所有field
hvals <key>			列出該hash集合的所有value
hincrby <key> <field>  <increment>	將該對象中指定域的值增加給定的value,原子自增操作,只能是integer的屬性值可以使用
hsetnx <key>  <field> <value>		將哈希表 key 中的域 field 的值設置為 value ,當且僅當域 field 不存在 .

Demo樣式

Zset(sorted set:有序集合)

Redis有序集合zset與普通集合set非常相似,是一個沒有重復元素的字符串集合。不同之處是有序集合的每個成員都關聯(lián)了一個評分(score) ,這個評分(score)被用來按照從最低分到最高分的方式排序集合中的成員。集合的成員是唯一的,但是評分可以是重復了 。

因為元素是有序的, 所以你也可以很快的根據評分(score)或者次序(position)來獲取一個范圍的元素。訪問有序集合的中間元素也是非??斓?因此你能夠使用有序集合作為一個沒有重復成員的智能列表。

基本指令:

zadd  <key> <score1> <value1>  <score2> <value2>...		將一個或多個 value元素及其 score 值加入到有序集 key 當中。
zrange <key>  <start> <stop>  [WITHSCORES]  		返回有序集 key 中,下標在<start> <stop>之間的元素,帶WITHSCORES,可以讓分數一起和值返回到結果集。
zrangebyscore key min max [withscores] [limit offset count]		返回有序集 key 中,所有 score 值介于 min 和 max 之間(包括等于 min 或 max )的成員。有序集成員按 score 值遞增(從小到大)次序排列。 
zrevrangebyscore key max min [withscores] [limit offset count]		同上,改為從大到小排列。 
zincrby <key> <increment> <value>		為元素的score加上增量
zrem  <key>  <value>  		刪除該集合下,指定值的元素 
zcount <key>  <min>  <max> 		統(tǒng)計該集合,分數區(qū)間內的元素個數 
zrank <key>  <value> 			返回該值在集合中的排名,從0開始。

Demo樣式

RedisDesktopManager數據查看工具

RedisDesktopManager是一款開源的Redis數據庫管理應用程序。

下載完成后,安裝就直接點下一步即可

安裝完成后創(chuàng)建連接后就可以使用了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Redis創(chuàng)建并修改Lua 環(huán)境的實現方法

    Redis創(chuàng)建并修改Lua 環(huán)境的實現方法

    為了在Redis服務器中執(zhí)行Lua腳本, Redis在服務器內嵌了一個Lua環(huán)境, 并對這個Lua環(huán)境進行了一系列修改,本文主要介紹了Redis創(chuàng)建并修改Lua 環(huán)境的實現方法,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Redisson如何解決redis分布式鎖過期時間到了業(yè)務沒執(zhí)行完問題

    Redisson如何解決redis分布式鎖過期時間到了業(yè)務沒執(zhí)行完問題

    這篇文章主要介紹了Redisson如何解決redis分布式鎖過期時間到了業(yè)務沒執(zhí)行完問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • redis反序列化報錯原因分析以及解決方案

    redis反序列化報錯原因分析以及解決方案

    這篇文章主要介紹了redis反序列化報錯原因分析以及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Redis在SpringBoot工程中的綜合應用

    詳解Redis在SpringBoot工程中的綜合應用

    這篇文章主要介紹了Redis在SpringBoot工程中的綜合應用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Redis如何在項目中合理使用經驗分享

    Redis如何在項目中合理使用經驗分享

    這篇文章主要給大家介紹了關于Redis如何在項目中合理使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • Redis腦裂導致數據丟失的解決

    Redis腦裂導致數據丟失的解決

    本文主要介紹了Redis腦裂導致數據丟失的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • 一步步教會你redis如何配置密碼

    一步步教會你redis如何配置密碼

    Redis的配置文件中可以設置密碼來保護訪問,下面這篇文章主要給大家介紹了關于redis如何配置密碼的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • redis中5種數據基礎查詢命令

    redis中5種數據基礎查詢命令

    本文主要介紹了redis中5種數據基礎查詢命令,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 使用Redis實現用戶積分排行榜的教程

    使用Redis實現用戶積分排行榜的教程

    這篇文章主要介紹了使用Redis實現用戶積分排行榜的教程,包括一個用PHP腳本進行操作的例子,需要的朋友可以參考下
    2015-04-04
  • Windows中Redis安裝配置流程并實現遠程訪問功能

    Windows中Redis安裝配置流程并實現遠程訪問功能

    很多在windows環(huán)境中安裝Redis總是出錯,今天小編抽空給大家分享在Windows中Redis安裝配置流程并實現遠程訪問功能,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06

最新評論

元江| 平和县| 鞍山市| 贡觉县| 叙永县| 叙永县| 苏尼特左旗| 大渡口区| 巫溪县| 微山县| 南涧| 西城区| 肥西县| 苏州市| 保山市| 视频| 宜章县| 郁南县| 桃江县| 万山特区| 响水县| 阜新市| 西峡县| 古蔺县| 石门县| 兰西县| 青龙| 历史| 青海省| 措勤县| 贵港市| 义乌市| 榆社县| 大化| 织金县| 建昌县| 永靖县| 綦江县| 华池县| 黄山市| 息烽县|