七 SpringBoot - Redis 緩存

1、五大基本數據類型和操作1.1 字符串-string命令說明set key value如果key還沒有,那就可以添加,如果key已經存在了,那會覆蓋原有key的值get key如果key還沒有,獲取為(nil) , 代表key沒有被使用,如果key存在 , 可以獲取對應key的值exists key判斷某個key是否存在,返回Integer值1 代表存在 , 如果 exists car2 則返回0,不存在move key db將當前數據庫存在的鍵值移動到其它數據庫,其中db是數據庫的序號expire key 秒鐘為已經存在的key設置過期時間,注意過期之后,從內存中去掉了,是get不到的ttl key查看還有多少秒過期,-1表示永不過期,-2表示已過期type key命令用于返回 key 所儲存的值的類型del key根據key值刪除append key value根據key將其值進行字符串拼接strlen key根據key獲取其值的字符串長度,字節數incr key對key對應數值進行加一操作,對應的字符串值必須是數值decr key對key對應數值進行減一操作incrby key 數值對key對應數值按照指定的值進行遞增decrby key 數值對key對應數值按照指定的值進行遞減getrange key 起始位置 結束位置獲取指定區間內的值,類似between 。。。and的關系 , 起始位置為0,結束位置為-1 就是返回所有setrange key 起始位置 具體值設置指定區間內的值,具體值會從起始位置開始覆蓋setex key 過期秒值 真實值設置帶過期時間的key,動態設置 。setnx key value只有在 key 不存在時,才會設置 key 的值 , 如果已經存在了 , 不覆蓋,設置不了;setnx key value如果返回0 代表沒有設置成功,key對應值已經存在,如果返回1代表設置成功;這個就是redis的分布式鎖命令,很重要;mset key1 val1 key2 val2 ....同時設置一個或多個 key-value 對mget key1 key2 key3 ....獲取所有(一個或多個)給定 key 的值 。msetnx key1 val1 key2 val2 .....同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在1.2 列表-listlist操作起來類似于棧;
命令說明lpush key val1 val2 val3 ....從左側開始存放元素,先進后出lrange key 起始位置 結束位置從左側開始,指定范圍獲取元素,-1代表所有rpush key val1 val2 val3 ....從右側開始存放元素,先進先出lpop key從左側一次取出一個元素rpop key從右側一次取出一個元素lindex key index按照索引下標獲得元素(從左到右,左下標從0開始,如果是-1代表最后一個 , -2代表倒數第二個)llen key獲取集合元素個數lrem key 個數 具體的值從左往右刪除指定個數等于具體值的元素,返回的值為實際刪除的數量,個數0,表示刪除全部給定的值ltrim key 開始index 結束index截取指定范圍的值后再賦值給keyrpoplpush 源列表 目的列表移除列表的最后一個元素,并將該元素添加到另一個列表并返回lset key index value將key集合中的指定下標位置值改為valuelinsert  key  before/after 值1 值2在list某個已有 值1 的前后再添加具體 值2小結:

  1. 它是一個字符串鏈表,left、right都可以插入添加;
  2. 如果鍵不存在,創建新的鏈表;
  3. 如果鍵已存在,新增內容;
  4. 如果值全移除,對應的鍵也就消失了;
  5. 鏈表的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了;
1.3 集合-set命令說明sadd key val1 val2 ...集合set中添加元素,如果有重復元素會自動去除smembers  key查看集合中的元素sismember  key val判斷val是否在set集合中 , 如果在返回1 ,不在返回0scard key獲取集合里面的元素個數srem key value刪除集合中元素srandmember key 某個整數隨機出幾個數,如果超過最大數量就全部取出srandmember key 某個整數如果寫的值是負數 , 比如-3 ,表示需要取出3個,但是可能會有重復值 。spop key隨機出棧smove key1 key2將key1里的某個值賦給key2sdiff key1 key2在第一個set里面而不在后面任何一個set里面的項sinter key1 key2在兩個set中都有的值的交集返回sunion key1 key2在兩個set中所有的值的集合返回,會自動排除重復1.4 鍵值對-hashK V模式不變,但V是一個鍵值對;
命令說明hset 父key 子key 子value將父key,增加子鍵值對,類似屬性hget 父key 子key獲取父key,某個子key的值,獲取屬性值hmset 父key 子key1 子val1 子key2 子val2 ....批量添加屬性hmget 父key 子key1 子key...批量獲取屬性hgetall 父key批量獲取屬性及值hdel 父key 子key刪除子key屬性及值hlen 父key返回父key中的子key個數,相當于java實體的屬性個數hexists 父key 子key判斷父key中是否包含某個子key,結果為1,代表存在hkeys 父key獲取父key中所有的子keyhvals 父key獲取父key中的所有的子valhincrby 父key 子key 值給指定的子key值增加固定的值hincrbyfloat 父key 子key 值給有指定key的值增加小數hsetnx 父key 子key 子val如果子key存在則失敗,如果不存在則賦值1.5 有序集合-zset在set基礎上,加一個score值 。之前set是k1 v1 v2 v3,現在zset是k1 score1 v1 score2 v2;

推薦閱讀