Redis的五種基本數據類型


  1. String
  2. List
  3. Hash
  4. Set
  5. ZSet

首先看一下第一個:String

       String是redis中最簡單的數據類型。在key-value中,一般所說的數據類型就是value的類型,而key的數據類型只有一種,是字符串類型,但是我們都知道,在java中,我也可以存一個對象,但是對象要往出寫的過程需要序列化,所以存到redis中的依舊是字符串。

     redis中value的字符串,是一個動態字符串,內部是可以修改的,類似於java中的StringBuffer,它采用分配冗余空間的方式減少內存的頻繁分配。在redis內部結構中,一般實際分配內存空間會大於需要的內存,當字符串小於1M的時候,擴容就是在現有的空間基礎上加倍,擴容每次擴1M空間,最大是512M.

     操作字符串的常用命令:

  • append:使用這個命令的時候,如果key已經存在,則在value后追加內容,如果key不存在,則創建新的鍵值對。(append key value)
  • get :根據key的值查看value的值(get key)
  • set:賦值操作(set key value)
  • decr:當value的值是 數字的時候,實現對value的值減一,否則報錯,如果value不存在,則會給value一個默認值0並在此基礎上減一。(decr key)
  • decrby:和decr類似,都是執行減操作,不過decrby可以設置步長,也就是減的個數(decrby key 5)
  • getranger:可以用來返回value的子串,類似於java中的substring方法(getranger key  3  -3 (截取從第三個開始一直到倒數第三個))
  • getset:獲取並更新某一個key的value(getset key value)
  • incr:給某個key自增
  • incrby:自增並設置步長
  • incrbyfloat:自增並設置步長,步長可以設置為浮點數
  • mget:批量獲取
  • mset:批量存儲
  • ttl:查看key 的過期時間
  • expire:設置key的有效期,如果key在過期之前被重新set,則過期時間會失效
  • persist:移除一個key的過期時間
  • setex:給key設置value,同時設置過期時間(時間單位是秒)
  • pxetex:給key設置value,同時設置過期時間(時間單位是毫秒)
  • setnx:默認,set命令命令會覆蓋存在的key,setnx則不會。
  • msetnx:批量設置
  • setrange:覆蓋一個已經存在key的value
  • strlen:查看字符串長度
  • flushall:清空所有

字符串中BIT命令:在redis中,字符串都是以二進制方式存儲的,BIT相關的命令,就是對二進制進行操作

  • getbit :獲取key對應的value在offset處的bit值   
  • setbit :修改key對應的value在offset處的bit值      
  • bitcount:統計二進制中1的個數

第二個看一下:List

redis中的value是一個列表的形式,因為list的底層是數組所以他的元素是可以重復的。

  •    lputh:將value以從左到右的順序依次插入到表頭
  •    lrange:返回列表指定區間的元素
  •    rputh:將value以從右到左的順序依次插入到表頭
  •    rpop:移除並返回列表的末尾元素
  •    lpop:移除並返回列表的頭部元素
  •    lindex:返回列表中,下標為index的元素
  •    ltrim:對列表修剪
  •    bipop:阻塞式的彈出,相當於lpop的阻塞,要設置阻塞時長

第三個看一下:Set

redis中,set的元素不能重復,可以放重復的,但是結果只有一個

  • sadd:添加元素到一個key中
  • smembers:獲取一個key中的所有元素
  • srem:移除指定的元素
  • sismeneber:返回某個成員是否在集合中
  • scard:返回集合的數量
  • srandmember:隨即返回一個元素
  • spop:隨即返回並且出棧一個元素
  • smove:把一個元素從一個集合移到另一個集合中
  • sdiff:返回兩個集合的差集(從小的集合中出發,順序很關鍵)
  • sinter:返回兩個集合的交集
  • sinterstore:返回兩個集合的交集並存到一個新的集合
  • sdiffstore:返回兩個集合的差集並存到一個新的集合
  • sunion:求並集
  • sunionstore:求並集並存到新的集合

第四個看一下:Hash

 redis中,hash也稱樹,key是字符串,value是一個 鍵值對

  • hset:添加值
  • hget:獲取值
  • hmset:批量添加
  • hmget:批量獲取
  • hdel:刪除的是value中的key中的value
  • hsetnx:默認如果key和field相同,會覆蓋掉value,hsetnx則不會
  • hvals:獲取所有value
  • hkeys:獲取所有key
  • hgetall:同時獲取key和value
  • hexists:返回field是否存在
  • hincrby:value自增
  • hincrbyfloat:value自增一個浮點數
  • hlen:返回某個key中value的數量
  • hstrlen:返回某個key中某個field的字符串長度

第五個看一下:ZSet

有序集合,可以用於檢索

  • zadd:添加
  • zscore:返回member中的score值
  • zrange:返回集合中的一組元素(可以加上withscores(連同分數一起返回))
  • zrevrange:返回集合中的一組元素(倒敘)
  • zcard:返回元素個數
  • zcount:返回score在某個區間(閉區間)的元素的個數
  • zrangebyscore:按照score的范圍返回元素
  • zrank:返回元素的排名(從小到大)
  • zrevrank:返回元素的排名(從大到小)
  • zincrby:score自增
  • zinterstore:給兩個集合的交集放到到一個新的集合
  • zrem:彈出一個元素(刪除)
  • zlexcount:計算數量(根據元素統計,還有元素區間統計)
  • zrangebylex:返回指定區間內的成員

####除卻String

 在第一次使用時,如果容器不存在,就自動創建一個

如果里面沒有元素了,那么立即刪除容器,釋放內存

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM