一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Redis - redis操作學習記錄

redis操作學習記錄

2020-05-14 15:07隨風行云 Redis

這篇文章主要介紹了redis操作,記錄總結了Redis客戶端、服務器、string、hash、list、發布/訂閱、事務等相關概念、原理與操作技巧,需要的朋友可以參考下

本文實例總結了redis操作。分享給大家供大家參考,具體如下:

相關內容:

雖然有參考文檔,而且記憶太多也是耗腦,但學習的時候還是想要有個系統劃分開知識點的文檔,即使不要求去細致記憶,但劃分開知識塊后腦子里的印象才會更清晰,所以就有了這個博文。

 

主要是將各種命令進行劃分成不同的功能歸屬

  • redis的介紹:
  • 客戶端連接操作
  • 服務端操作
  • string操作
  • hash操作
  • list操作
  • set操作
  • sort set操作
  • key操作
  • 發布\訂閱
  • 事務

 

參考:w3school

 

首發時間:2018-03-10 15:36

 

 


Redis的介紹:

 

  • Redis是一種非關系型數據庫 ,是一個高性能的key-value數據庫 ,設置的值也是以鍵值對存在的
  • Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啟的時候可以再次加載進行使用
  • Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
  • Redis還支持數據備份
  • Redis的所有操作都是原子性的
  • Redis支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted
    set:有序集合)。

 


客戶端連接操作:

 

啟動redis客戶端連接:

  • redis-cli [-h host] [-p port] [-a password ]
    • host是服務端IP
    • port是服務端端口
    • password是連接密碼
    • 端口port 默認是6379
  • redis操作學習記錄

斷開連接: quit

客戶端連接測試:

  • auth:如果設置了密碼,但連接的時候沒有使用-a password,那么可以在連接完成后使用auth password來解鎖,解鎖之后才能使用其他 Redis 命令
  • echo message:打印一個特定的信息  message  ,測試時使用。
  • ping [message]:使用客戶端向 Redis 服務器發送一個  PING  ,如果服務器運作正常的話,會返回一個  PONG  。通常用于測試與服務器的連接是否仍然生效,或者用于測量延遲值。如果設置了message,那么返回值為message。

切換數據庫:

  • select index:切換到指定的數據庫,數據庫索引號  index  用數字值指定,以 0 作為起始索引值。默認使用 0 號數據庫。可以從標識看出當前是哪個數據庫。redis操作學習記錄

 


服務端操作:

 

數據持久化:

snapshot快照持久化:保存的是所有數據,默認情況下,自動執行快照持久化,保存文件為.rbd

  • 如何打開snapshot記錄功能:
    • 默認打開的
  • 如何使用:
    • 使用save:SAVE 命令執行一個同步保存操作,將當前 Redis 實例的所有數據快照(snapshot)以 RDB 文件的形式保存到硬盤。一般來說,在生產環境很少執行 SAVE 操作,因為它會阻塞所有客戶端,保存數據庫的任務通常由BGSAVE 命令異步地執行。然而,如果負責保存數據的后臺子進程不幸出現問題時, SAVE 可以作為保存數據的最后手段來使用。
    • 使用bgsave:與save不同的是會在后臺進行備份,不會堵塞當前所有客戶端。
  • 如何恢復數據: 使用snapshot方式保存會有一個.rbd文件(config get dbfilename可獲知是哪個文件),保存完畢后將這個文件復制到外面一份,當需要恢復的時候,關閉redis服務,將.rbd復制回來覆蓋,重啟redis服務即可

 

AOF日志記錄型持久化:保存的是操作日志

  • 如何打開aof記錄功能: config set appendonly “yes”
  • 如何使用: 開啟aof功能后,會自動記錄執行的命令
  • 如何恢復:與rdb恢復數據方式相同,會有一個.aof文件(config get appendfilename可獲知是哪個文件,如果不行就看配置文件),保存完畢后將這個文件復制到外面一份,當需要恢復的時候,關閉redis服務,將.aof復制回來覆蓋,重啟redis服務即可
    • 如果rdb文件,和aof文件都存在,優先用“AOF"來恢復數據【這個要謹慎使用,有可能因為這個而發生”刪庫“】
    • 恢復時rdb和aof,rdb恢復的快

 

客戶端管理:

  • 斷開客戶端:CLIENT KILL ip:port   【關閉地址為  ip:port  的客戶端。】

  • 設置客戶端名稱:CLIENT SETNAME connection­name 【為當前連接分配一個名字。】

  • 獲取客戶端名稱:CLIENT GETNAME 【返回 CLIENT SETNAME 命令為連接設置的名字。創建的連接默認是沒有名字的】

  • 獲取客戶端連接信息:CLIENT LIST   【返回所有連接到服務器的客戶端信息和統計數據。】

服務端配置管理:

  • 獲取配置:config get config_setting_name【config_setting_name是配置項名】

  • 設置新配置:config set config_setting_name new_config_value 【new_config_value是新的配置值】

數據管理:

  • 清空所有數據:flushall

  • 清空當前數據庫中的所有 key:flushdb

其他:

  • 獲取時間:time 【返回當前服務器時間。第一個字符串是當前時間(以 UNIX 時間戳格式表示),而第二個字符串是當前這一秒鐘已經逝去的微秒數。】

 


String操作:

 

String是字符串的意思,在redis中就是表示“設置變量的值為一個字符串”

 

設置string:

  • set key value [EX seconds] [PX milliseconds] [NX|XX]   :設置鍵值對,無論key是否存在,存在則覆蓋
    • key:就是設置的鍵名
    • value:對應的鍵的值,默認為字符串,可以加雙引號,也可以不加
    • ex:設置鍵的過期時間為  seconds  秒
    • px:與ex不同的是代表多少毫秒失效
    • nx:只在鍵不存在時,才對鍵進行設置操作 【當使用setnx設置值時默認有nx】
    • xx:只在鍵已經存在時,才對鍵進行設置操作
    • redis操作學習記錄
  • setnx key value :只有在 key 不存在時設置 鍵值對
  • setex key seconds value:設置鍵值對的過期時間為seconds 秒
  • setbit key offset value: 設置對應二進制的offset位為value【每個字符占八位,從高位到低位為0-7】redis操作學習記錄
  • setrange key offset value :用  value  參數覆蓋給定  key  所儲存的字符串值,從偏移量  offset  開始。redis操作學習記錄
  • mset key value [key value ...]:同時設置一個或多個  key‐value  對。redis操作學習記錄
  • msetnx key value [key value ...]:當所有鍵都不存在時,同時設置一個或多個  key‐value  對。只要一個給定  key  已存在, 全部設置操作都會取消(原子性)
  • append key value:如果  key  已經存在并且是一個字符串, append命令將  value  追加到  key  原來的值的末尾。如果  key  不存在, append就簡單地將給定  key  設為  value  ,就像執行  SET key value  一樣。 如果key不是一個字符串,將報錯。redis操作學習記錄

 

 

獲取string:

  • get key :獲取對應鍵的鍵值
  • mget key [key ...]:獲取多個鍵的值
  • getrange key start end:返回  key  中字符串值的子字符串,字符串的截取范圍為[start , end]
  • getset key newvalue:返回key的值,并設置key的值為newvalue
  • getbit key offset: 獲取字符串所代表的二進制位的offset數值redis操作學習記錄
  • strlen  key :獲取key對應字符串的長度
  • bitcount key [start end]:對應對應字符串的二進制中為1的數量

 

 

其他操作:

  • decr key: 當字符串為數字時,將 key 中儲存的數字值減一,其余時報錯。如果  key 不存在,那么 key 的值會先被初始化為 0  ,然后再執行 decr 操作。
  • decrby key decrement:與decr key不同的是指定減少數量為decrement。如果  key  不存在,那么  key  的值會先被初始化為  0  ,然后再執行 decrby 操作。
  • incr key:當字符串為數字時,將  key  中儲存的數字值增一,其余時報錯。如果  key  不存在,那么  key  的值會先被初始化為  0  ,然后再執行 incr操作。
  • incrby key increment:當字符串為數字時,將  key  所儲存的值加上增量  increment  。如果  key  不存在,那么  key  的值會先被初始化為  0  ,然后再執行incrby 命令。
  • incrbyfloat key increment:與incrby key increment不同的是,增長的值為浮點數。
  • bitop operation destkey key [key ...]:一個或多個保存二進制位的字符串或十六進制字符串或普通字符串  key  進行位元操作,并將結果保存到  destkey  上。
    • operation可以是and,or,not,xor(異或)redis操作學習記錄redis操作學習記錄
    • 當 bitop 處理不同長度的字符串時,較短的那個字符串所缺少的部分會被看作  0  。空的  key  也被看作是包含  0  的字符串序列

 

 

補充:

  • m前綴的操作是具有原子性的,只有一個失敗就報錯,比如mset設置多個值,只要一個設置失敗,那么就會報錯,并全部設置失敗。
  • 并且redis是有數據類型的,操作會檢測數據類型,除去一些能“覆蓋”原變量,忽略原變量類型的操作,其他操作遇到不符合的類型都會報錯

 

 

 


Hash操作:

 

redis中的hash相當于key只是一個索引值,指向一個哈希表,它的值是一個域值對(field-value)區域

redis操作學習記錄

 

設置hash:

  • hset key field value:將哈希表  key  中的域  field  的值設為  value  。如果  key  不存在,一個新的哈希表被創建并進行hset操作。如果域  field  已經存在于哈希表中,舊值將被覆蓋。
  • hsetnx key field value:將哈希表  key  中的域  field  的值設置為  value  ,當且僅當域  field  不存在。
  • hmset key field value [field value ...]:同時將多個  field‐value  (域­值)對設置到哈希表  key  中。

獲取hash:

  • hget key field:獲取哈希表中的field的值,只返回值value
  • hgetall key:獲取哈希表中的所有field的值,返回值中,奇數行為field,偶數行為valueredis操作學習記錄
  • hmget key field [field…]:返回哈希表  key  中,一個或多個給定域的值,只返回值value
  • hvals key:獲取哈希表中的所有field的值,只返回value redis操作學習記錄
  • hkeys key:獲取哈希表中的所有field,只返回field
  • hscan key cursor [MATCH pattern] [COUNT count]:用于增量地迭代hash
    • cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢
    • Match pattenrn是 匹配field的模式 ,不是value也不是key!!
    • count count是此次迭代的數量
    • redis操作學習記錄
  • hlen key:返回哈希表  key  中域的數量。
  • hexists key field:查看哈希表  key  中,給定域  field  是否存在。

其他操作:

  • hdel key field [field ...]:刪除哈希表  key  中的一個或多個指定域,不存在的域將被忽略。
  • hincrby key field increment:如果哈希表中對應的field為數字,那么為哈希表  key  中的域  field  的值加上增量  increment  。如果  key  不存在,一個新的哈希表被創建并執行 HINCRBY 命令。如果域  field  不存在,那么在執行命令前,域的值被初始化為  0  。【注,increment可以為負數,所以沒有hdecr】
  • hincrbyfloat key field increment:如果哈希表中對應的field為數字,那么為哈希表  key  中的域  field  的值加上浮點數增量  increment  。如果  key  不存在,一個新的哈希表被創建并執行 HINCRBY 命令。如果域  field  不存在,那么在執行命令前,域的值被初始化為  0  。【注,值和增量可以為指數符號如5.0e3】

 

 


List操作:

 

代表key的值為一個列表,可以有多個元素

List中左邊為頭,右邊為尾

 redis操作學習記錄

設置list:

  • lpush key value [value ...]   : 將一個或多個值  value  插入到列表  key  的表頭,多個值插入時,后面插入的值在表頭,也就是說會從左邊把一個個值往右邊壓,最后面的值作為表頭。
  • rpush key value [value ...]  :將一個或多個值  value  插入到列表  key  的表尾(最右邊)。多個值插入時,最后面的的值作為表尾。
  • rpushx key value  :將值  value  插入到列表  key  的表尾,當且僅當  key  存在并且是一個列表,否則不執行任何操作。
  • lrange key start stop  :  返回列表  key  中指定區間[start,stop](這是一個[閉區間])內的元素。可以用-1來代表最后一個元素
  • lset key index value  :   將列表  key  下標為  index  的元素的值設置為  value  。當  index  參數超出范圍,或對一個空列表(  key  不存在)進行 LSET 時,返回一個錯誤。
  • linsert key before|after pivot value 將值  value  插入到列表  key  當中,位于值  pivot (注意pivot是一個值value) 之前(before)或之后(after)。當  pivot  不存在于列表  key  時,不執行任何操作。當  key  不存在時,  key  被視為空列表,不執行任何操作。如果  key  不是列表類型,返回一個錯誤。redis操作學習記錄

 

獲取list:

  • lpop key移除并返回列表  key  的頭元素
  • rpop key移除并返回列表  key  的尾元素。
  • blpop是 LPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連接將被 BLPOP 命令阻塞,直到等待超時或發現可彈出元素為止(可以使用另外一個客戶端來添加元素)。當給定多個  key  參數時,按參數  key  的先后順序依次檢查各個列表,彈出第一個非空列表的頭元素。redis操作學習記錄
  • brpop :   是 RPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連接將被 BRPOP 命令阻塞,直到等待超時或發現可彈出元素為止(可以使用另外一個客戶端來添加元素)。當給定多個  key  參數時,按參數  key  的先后順序依次檢查各個列表,彈出第一個非空列表的尾元素。
  • rpoplpush source destination :   將source的尾元素取出來放到destination的表頭
  • lindex key index  :    返回列表  key  中,下標為  index  的元素。如果  key  不是列表類型,返回一個錯誤。
  • llen key :   返回列表  key  的長度。如果  key  不存在,則  key  被解釋為一個空列表,返回  0  .如果  key  不是列表類型,返回一個錯誤。

其他操作:

  • ltrim key start stop :  對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內(為閉區間)的元素,不在指定區間之內的元素都將被刪除。

補充:

  • m前綴的操作是具有原子性的,只有一個失敗就報錯,比如mset設置多個值,只要一個設置失敗,那么就會報錯,并全部設置失敗。
  • 并且redis是有數據類型的,操作會檢測數據類型,除去一些能“覆蓋”原變量,忽略原變量類型的操作,其他操作遇到不符合的類型都會報錯

 


Set操作:

 

代表key的值為一個集合,集合中元素不可以重復

設置set:

  • sadd key member [member ...]  :    將一個或多個  member  元素加入到集合  key  當中,已經存在于集合的  member  元素將被忽略。假如  key  不存在,則創建一個只包含  member  元素作成員的集合。當  key  不是集合類型時,返回一個錯誤。

 

獲取set:

    • scard key  :  返回集合的元素個數
    • spop key:移除并返回集合中的一個隨機元素。 {C}

    • smembers key  :返回集合  key  中的所有成員。不存在的  key  被視為空集合。
    • srandmember key [count] :  如果命令執行時,只提供了  key  參數,那么返回集合中的count個隨機元素。
  • 如果  count  為正數,且小于集合基數,那么命令返回一個包含  count  個元素的數組,數組中的元
    素各不相同。如果  count  大于等于集合基數,那么返回整個集合。
    如果  count  為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度
    為  count  的絕對值。redis操作學習記錄

 

其他操作:

  • sscan key cursor [MATCH pattern] [COUNT count]: 用于增量地迭代set
    • cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢
    • Match pattenrn是 匹配set中元素的模式
    • count count是此次迭代的數量
    • redis操作學習記錄
  • smove source destination member:將  member  元素從  source  集合移動到  destination  集合。如果  source  集合不存在或不包含指定的  member  元素,則 SMOVE 命令不執行任何操作,僅返回  0  。否則,  member  元素從  source  集合中被移除,并添加到  destination  集合中去。
  • sdiff key [key ...]:返回給定集合之間的差集
  • sdiffstore destination key [key ...]:返回給定集合之間的差集,并存儲到destination中,如果  destination  集合已經存在,則將其覆蓋。destination  可以是  key  本身。
  • sinter key [key ...]:返回所有給定集合的交集
  • sinter destination key [key ...]:返回給定集合之間的交集,并存儲到destination中,如果  destination  集合已經存在,則將其覆蓋。destination  可以是  key  本身。
  • sismember key member:判斷  member  元素是否集合  key  的成員。
  • srem key member [member ...]:移除集合  key  中的一個或多個  member  元素,不存在的  member  元素會被忽略。當  key  不是集合類型,返回一個錯誤。
  • sunion key [key…] :返回所有給定集合的并集。不存在的  key  被視為空集。
  • sunionstore destination key [key…] :返回所有給定集合的并集,不存在的  key  被視為空集,將返回的結果保存到  destination  集合.如果  destination  已經存在,則將其覆蓋。destination  可以是  key  本身。

 

補充:

redis是有數據類型的,操作會檢測數據類型,除去一些能“覆蓋”原變量,忽略原變量類型的操作,其他操作遇到不符合的類型都會報錯

 


Sort Set操作:

 

 Sort set代表是一個有序集合,score決定著元素的順序,一般score小的在前面

 

設置sort set:

  • zadd key [NX|XX] [CH] [INCR] score member [score member ...]: 將一個或多個  member  元素及其  score  值加入到有序集  key  當中。
    • scrore是元素的權重,決定著元素的順序
    • nx:是member不存在才添加,已存在則不作操作
    • xx:是member已經存在才添加
    • ch:修改返回值為發生變化的成員總數,原始是返回新添加成員的總數
    • incr:當ZADD指定這個選項時,成員的操作就等同zincrby命令,可以對已有成員的分數進行增加操作。redis操作學習記錄

 

獲取sort set:

  • zrange key start stop [WITHSCORES] :返回有序集  key  中,指定區間內的成員。其中成員的位置按  score  值遞增(從小到大)來排序。
    • withscores代表是否同時返回score
  • zrangebyscore key min max [WITHSCORES] [LIMIT offset count]:返回有序集  key  中,所有  score  值介于  min  和  max  之間(包括等于  min  或  max  )的成員。有序集成員按score  值遞增(從小到大)次序排列。
  • zrevrange key start stop [WITHSCORES]:返回有序集  key  中,指定區間內的成員。
  • ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:返回有序集  key  中,  score  值介于  max  和  min  之間(默認包括等于  max  或  min  )的所有的成員。有序集成員按  score  值遞減(從大到小)的次序排列。
  • zrank key member:返回有序集  key  中成員  member  的排名。
  • zcard key:返回有序集合的元素個數
  • zscore key member:返回有序集  key  中,成員  member  的  score  值。如果  member  元素不是有序集  key  的成員,或  key  不存在,返回  nil  。
  • zrevrank key member:返回有序集  key  中成員  member  的排名。其中有序集成員按  score  值遞減(從大到小)排序。排名以  0  為底,也就是說,  score  值最大的成員排名為  0  。

  • zcount key min max:返回有序集  key  中,  score  值在[min,max]之間的成員的數量。

 

其他操作:

  • zrem key member [member ...]:移除有序集  key  中的一個或多個成員,不存在的成員將被忽略。當  key  存在但不是有序集類型時,返回一個錯誤。
  • zincrby key increment member:為有序集  key  的成員  member  的  score  值加上增量  increment  。可以通過傳遞一個負數值  increment  ,讓  score  減去相應的值,比如  ZINCRBY key ‐5 member  ,就是讓member  的  score  值減去  5  。當  key  不存在,或  member  不是  key  的成員時,  ZINCRBY key increment member  等同于ZADD key increment member  。當  key  不是有序集類型時,返回一個錯誤。score  值可以是整數值或雙精度浮點數。
  • ZREMRANGEBYRANK key start stop:移除有序集  key  中,指定排名(rank)區間內的所有成員。區間分別以下標參數  start  和  stop  指出,包含  start  和  stop  在內。下標參數  start  和  stop  都以  0  為底,也就是說,以  0  表示有序集第一個成員,以  1  表示有序集第二個成員,以此類推。你也可以使用負數下標,以  ‐1  表示最后一個成員,  ‐2  表示倒數第二個成員,以此類推。
  • ZREMRANGEBYSCORE key min max:移除有序集  key  中,所有  score  值介于  min  和  max  之間(包括等于  min  或  max  )的成員。
  • zunionstore destination numkeys key [key ...] [weights weight [weight ...]][AGGREGATE SUM|MIN|MAX]:計算給定的一個或多個有序集的并集,其中給定  key  的數量必須以  numkeys  參數指定,并將該并集(結果集)儲存到  destination  。默認情況下,結果集中某個成員的  score  值是所有給定集下該成員  score  值之 和 。
  • zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]:計算給定的一個或多個有序集的交集,其中給定  key  的數量必須以  numkeys  參數指定,并將該交集(結果集)儲存到  destination  。默認情況下,結果集中某個成員的  score  值是所有給定集下該成員  score  值之和.
  • zscan key cursor [MATCH pattern] [COUNT count]:{C}
    • cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢
    • Match pattenrn是 匹配sort set中元素的模式
    • count count是此次迭代的數量
    • redis操作學習記錄{C}

 


key操作:

 

查詢鍵:

  • exists key:檢測鍵是否存在

  • type key:檢測鍵對應的值的類型

  • keys pattern:查找所有符合給定模式  pattern  的  key  。比如 keys *代表獲取所有鍵

  • ttl key:以秒為單位,返回給定  key  的剩余生存時間

  • PTTL key:以毫秒為單位返回  key  的剩余生存時間

  • RANDOMKEY:從當前數據庫中隨機返回(不刪除)一個  key  。

 

刪除鍵:

  • del key:當鍵存在時,刪除鍵

 

鍵的排序:

  • sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC]
    [ALPHA] [STORE destination]:
    返回或保存給定列表、集合、有序集合  key  中經過排序的元素。排序默認以數字作為對象,值被解釋為雙精度浮點數,然后進行比較。

 

鍵的設置:

  • EXPIRE key seconds:為給定  key  設置生存時間,當  key  過期時(生存時間為  0  ),它會被自動刪除。
  • EXPIREAT key timestamp:EXPIREAT 的作用和 EXPIRE 類似,都用于為  key  設置生存時間。不同在于 EXPIREAT 命令接受的時間參數是 UNIX 時間戳(unix timestamp)。
  • PEXPIREAT key milliseconds­timestamp:它以毫秒為單位設置  key  的過期 unix 時間戳
  • RENAME key newkey:將  key  改名為  newkey  。當  key  和  newkey  相同,或者  key  不存在時,返回一個錯誤。當  newkey  已經存在時, RENAME 命令將覆蓋舊值。
  • RENAMENX key newkey:當且僅當  newkey  不存在時,將  key  改名為  newkey  。當  key  不存在時,返回一個錯誤。

 

    • DUMP key:序列化給定  key  ,并返回被序列化的值,使用 restore 命令可以將這個值反序列化為 Redis 鍵。序列化生成的值有以下幾個特點:它帶有 64 位的校驗和,用于檢測錯誤, RESTORE 在進行反序列化之前會先檢查校驗和。值的編碼格式和 RDB 文件保持一致。RDB 版本會被編碼在序列化值當中,如果因為 Redis 的版本不同造成 RDB 格式不兼容,那么Redis 會拒絕對這個值進行反序列化操作。序列化的值不包括任何生存時間信息。
    • restore key ttl serialized­value [REPLACE]:反序列化給定的序列化值,并將它和給定的  key  關聯。參數  ttl  以毫秒為單位為  key  設置生存時間;如果  ttl  為  0  ,那么不設置生存時間。RESTORE 在執行反序列化之前會先對序列化值的 RDB 版本和數據校驗和進行檢查,如果 RDB 版本不相同或者數據不完整的話,那么 RESTORE 會拒絕進行反序列化,并返回一個錯誤。如果鍵  key  已經存在, 并且給定了  REPLACE  選項, 那么使用反序列化得出的值來代替鍵  key  原有的值; 相反地, 如果鍵  key  已經存在, 但是沒有給定  REPLACE  選項, 那么命令返回一個錯誤。
    • PERSIST key:移除給定  key  的生存時間

 

鍵的移動:

  • migrate host port key destination­db timeout [COPY] [REPLACE]:將  key  原子性地從當前實例傳送到目標實例的指定數據庫上,一旦傳送成功,  key  保證會出現在目標實例上,而當前實例上的  key  會被刪除。這個命令是一個原子操作,它在執行的時候會阻塞進行遷移的兩個實例,直到以下任意結果發生:遷移成功,遷移失敗,等到超時。
  • move key db:將當前數據庫的  key  移動到給定的數據庫  db  當中。如果當前數據庫(源數據庫)和給定數據庫(目標數據庫)有相同名字的給定  key  ,或者  key  不存在于當前數據庫,那么  MOVE  沒有任何效果

發布/訂閱:

 

訂閱可以使多個客戶端等待同一信息,發布可以使服務端向多個特定客戶端發送信息

  • 就像收音機一樣,只要收音機調到指定的頻道channel,就可以收聽到電臺的信息
  • 而電臺可以向所有收聽它的收音機發送信息
  • 新的用戶,不會收聽到之前的消息

 

 

訂閱頻道:

  • psubscirbe pattern [pattern ...]:客戶端訂閱一個或多個符合給定模式的頻道
  • subscirbe channel [channel ...]:訂閱給定的一個或多個頻道的信息。
  • 【上述兩個的區別就是pattern可以模式匹配】

 

 

發送消息:

  • publish channel message:將信息  message  發送到指定的頻道  channel  。返回值是收到message的訂閱者數量

 

退訂頻道:

  • unpsubscirbe [channel [channel ...]]:指示客戶端退訂給定的頻道。
  • punsubscirbe [pattern [pattern ...]]:指示客戶端退訂所有給定模式。
  • 【上述兩個的區別就是pattern可以模式匹配】

 

頻道查詢:

  • pubsub numpat:客戶端訂閱的所有模式的數量總和。

  • pubsub channels [pattern]:列出當前的活躍頻道。活躍頻道指的是那些至少有一個訂閱者的頻道, 訂閱模式的客戶端不計算在內。

  • pubsub numsub [channel­1 ... channel­N]:返回給定頻道的訂閱者數量, 訂閱模式的客戶端不計算在內。

 

事務

 

開啟事務:

  • multi:標記一個事務塊的開始。事務塊內的多條命令會按照先后順序被放進一個隊列當中,最后由 EXEC 命令原子性(atomic)地執行。

監控:

  • watch key [key …]:監視一個(或多個) key ,如果在事務執行exec之前這個(或這些) key 被其他命令所改動,那么事務將被打斷。
  • unwatch:取消 WATCH 命令對所有 key 的監視。

 

執行事務塊:

  • exec:執行所有事務塊內的命令。

 

取消事務:

  • discard:取消事務,放棄執行事務塊內的所有命令。同時也會取消watch對所有key的監視

 

 

redis操作學習記錄redis操作學習記錄

 

 


想知道更多,請參考官方文檔:https://redis.io/commands 中文文檔:http://www.redis.cn/documentation.html

希望本文所述對大家Redis數據庫程序設計有所幫助。

原文鏈接:https://www.cnblogs.com/progor/p/8540246.html

延伸 · 閱讀

精彩推薦
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具...

    一線碼農5812019-11-18
  • RedisRedis全量復制與部分復制示例詳解

    Redis全量復制與部分復制示例詳解

    這篇文章主要給大家介紹了關于Redis全量復制與部分復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis爬蟲具有一定的參考學習...

    豆子先生5052019-11-27
  • RedisRedis如何實現數據庫讀寫分離詳解

    Redis如何實現數據庫讀寫分離詳解

    Redis的主從架構,能幫助我們實現讀多,寫少的情況,下面這篇文章主要給大家介紹了關于Redis如何實現數據庫讀寫分離的相關資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • RedisRedis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • Redisredis實現排行榜功能

    redis實現排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis的配置、啟動、操作和關閉方法

    Redis的配置、啟動、操作和關閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • Redis詳解Redis復制原理

    詳解Redis復制原理

    與大多數db一樣,Redis也提供了復制機制,以滿足故障恢復和負載均衡等需求。復制也是Redis高可用的基礎,哨兵和集群都是建立在復制基礎上實現高可用的...

    李留廣10222021-08-09
主站蜘蛛池模板: 韩国男女做性全过程视频 | 日韩欧美中文字幕出 | 羞羞漫画免费漫画页面在线看漫画秋蝉 | 丫鬟粗大狠狠贯穿h | 天堂日韩 | 欧美一区二区视频 | 青久草视频 | tobu8中国在线观看免费视频 | 国产日本久久久久久久久婷婷 | 日韩理论片 | 牛牛色婷婷在线视频播放 | ysl蜜桃色成人麻豆 youwu在线影院 | 久久九九精品国产自在现线拍 | 动漫美女隐私尿口图片 | 艹b小说 | 91久久线看在观草草青青 | 成年男人永久免费看片 | 亚洲黄色片免费看 | hd性欧美俱乐部中文 | 国产成人看片免费视频观看 | 免费国产一级观看完整版 | 国产成人在线综合 | 午夜人妻理论片天堂影院 | 无码区国产区在线播放 | 羞羞色男人的天堂伊人久久 | 日本高清视频一区二区 | 三级伦理影院 | 513热点网深夜影院影院诶 | 国产成人免费观看在线视频 | 黑人巨大精品战中国美女 | 第一福利在线观看永久视频 | crdy在线看亚洲 | 青草社区视频 | 日产精品卡一卡2卡三卡乱码工厂 | 色综合中文字幕天天在线 | 日韩精品一区二区三区中文字幕 | 五月天婷婷网亚洲综合在线 | 激情艳妇| 日本免费久久久久久久网站 | 国产91视频网 | 2019国内精品久久久久久 |