redis操作學習記錄_Redis

來源:腳本之家  責任編輯:小易  

命令:redis-cli info/查看redis服務器狀態的rdb:redis database 默認開啟的,是將數據從內存備份到硬盤中。aof:append only f 需要自己根據需要開啟,是將執行命令存儲在一個文件中。建議看一下apeit-程序猿IT的文章《redis數據持久化》,講的簡單明了www.anxorj.tw防采集請勿采集本網。

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

相關內容:

1.先進入redis目錄,將redis安裝到指定目錄 使用知make PREFIX=usr/local/redis install 命令 2.進入redis目錄復制redis.conf文件到道usr/local/redis文件下 然后就可以使用權redis進行操作了

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

一句話就是做公共緩存用的,比如程序里中國各個省市區這種固定數據,第一次用先從數據庫查出來暫存在redis緩存里面,查詢讀取會比訪問數據庫快很多。這是最簡單的例子,至于更多的查資料把少年。

主要是將各種命令進行劃分成不同的功能歸屬 redis的介紹: 客戶端連接操作 服務端操作 string操作 hash操作 list操作 set操作 sort set操作 key操作 發布\訂閱 事務

我只有在開啟了vm swap的時候遇到過cpu100%的情況,針對你的這種情況還真沒有遇到過!

參考:w3school

redis使用跳表(ziplist)?首先,跳表是skiplist?不是ziplist。ziplist在redis中是一個非常省內存的鏈表(代價是性能略低),所以在hash元素的個數很少(比如只有幾十個),那么用這個結構來存儲

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

默認情況下,redis 在 server 上所有有效的網絡接口上監聽客戶端連接。你如果只想讓它在一個網絡接口上監聽,那你就綁定一個IP或者多個IP。


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 image

斷開連接: quit

客戶端連接測試:

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

切換數據庫

select index:切換到指定的數據庫,數據庫索引號 index 用數字值指定,以 0 作為起始索引值。默認使用 0 號數據庫?梢詮臉俗R看出當前是哪個數據庫。image

服務端操作:

數據持久化:

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:只在鍵已經存在時,才對鍵進行設置操作 image setnx key value :只有在 key 不存在時設置 鍵值對 setex key seconds value:設置鍵值對的過期時間為seconds 秒 setbit key offset value: 設置對應二進制的offset位為value【每個字符占八位,從高位到低位為0-7】image setrange key offset value :用 value 參數覆蓋給定 key 所儲存的字符串值,從偏移量 offset 開始。image mset key value [key value ...]:同時設置一個或多個 key‐value 對。image msetnx key value [key value ...]:當所有鍵都不存在時,同時設置一個或多個 key‐value 對。只要一個給定 key 已存在, 全部設置操作都會取消(原子性) append key value:如果 key 已經存在并且是一個字符串, append命令將 value 追加到 key 原來的值的末尾。如果 key 不存在, append就簡單地將給定 key 設為 value ,就像執行 SET key value 一樣。 如果key不是一個字符串,將報錯。image

獲取string:

get key :獲取對應鍵的鍵值 mget key [key ...]:獲取多個鍵的值 getrange key start end:返回 key 中字符串值的子字符串,字符串的截取范圍為[start , end] getset key newvalue:返回key的值,并設置key的值為newvalue getbit key offset: 獲取字符串所代表的二進制位的offset數值image 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(異或)imageimage 當 bitop 處理不同長度的字符串時,較短的那個字符串所缺少的部分會被看作 0 ?盏 key 也被看作是包含 0 的字符串序列

補充:

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


Hash操作:

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

image

設置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,偶數行為valueimage hmget key field [field…]:返回哈希表 key 中,一個或多個給定域的值,只返回值value hvals key:獲取哈希表中的所有field的值,只返回value image hkeys key:獲取哈希表中的所有field,只返回field hscan key cursor [MATCH pattern] [COUNT count]:用于增量地迭代hash cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配field的模式 ,不是value也不是key! count count是此次迭代的數量 image 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中左邊為頭,右邊為尾

image

設置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 不是列表類型,返回一個錯誤。image

獲取list:

lpop key : 移除并返回列表 key 的頭元素 rpop key : 移除并返回列表 key 的尾元素。 blpop : 是 LPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連接將被 BLPOP 命令阻塞,直到等待超時或發現可彈出元素為止(可以使用另外一個客戶端來添加元素)。當給定多個 key 參數時,按參數 key 的先后順序依次檢查各個列表,彈出第一個非空列表的頭元素。image 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:移除并返回集合中的一個隨機元素。 smembers key :返回集合 key 中的所有成員。不存在的 key 被視為空集合。 srandmember key [count] : 如果命令執行時,只提供了 key 參數,那么返回集合中的count個隨機元素。

如果 count 為正數,且小于集合基數,那么命令返回一個包含 count 個元素的數組,數組中的元

素各不相同。如果 count 大于等于集合基數,那么返回整個集合。

如果 count 為負數,那么命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度

為 count 的絕對值。image

其他操作:

sscan key cursor [MATCH pattern] [COUNT count]: 用于增量地迭代set cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配set中元素的模式 count count是此次迭代的數量 image 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命令,可以對已有成員的分數進行增加操作。image

獲取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]: cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配sort set中元素的模式 count count是此次迭代的數量 image


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]:列出當前的活躍頻道;钴S頻道指的是那些至少有一個訂閱者的頻道, 訂閱模式的客戶端不計算在內。

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

事務

開啟事務:

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

監控:

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

執行事務塊:

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

取消事務:

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

imageimage


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

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

如何查看redis最近使用的命令使用Redis的腳本功能實現Redis中數據簡單查詢,有需要的朋友可以參考下。在Redis的設計中,key是一切,對于Redis是可見的,而value對于Redis來說就是一個字節數組,Redis并不知道你的value中存儲的是什么,所以要想實現比如‘select*from users where user.location="shanghai"’這樣的查詢,在Redis是沒辦法通過value進行比較得出結果的。但是可以通過不同的數據結構類型來做到這一點。比如如下的數據定義 users:1 {name:Jack,age:28,location:shanghai} users:2 {name:Frank,age:30,location:beijing} users:location:shanghai[1]其中users:1 users:2 分別定義了兩個用戶信息,通過Redis中的hash數據結構,而users:location:shanghai 記錄了所有上海的用戶id,通過集合數據結構實現。這樣通過兩次簡單的Redis命令調用就可以實現我們上面的查詢。Jedis jedis=jedisPool.getResource();Set<String>shanghaiIDs=jedis.smembers("users:location:shanghai");遍歷該set/./通過hgetall獲取對應的user信息 jedis.hgetAll("users:"+shanghaiIDs[0]);內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • redis操作命令總結
  • spring-data-redis操作redis知識總結
  • php實現的redis操作通用類示例
  • 在c#中使用servicestackredis操作redis的實例代碼
  • spring-data-redis操作redis cluster的示例代碼
  • python筆記:mysql、redis操作方法
  • python redis操作實例分析【連接、管道、發布和訂閱等】
  • spring使用redis操作key-value的示例代碼
  • 30個php操作redis常用方法代碼例子
  • redis 隊列操作的例子(php)
  • redis的配置、啟動、操作和關閉方法
  • redis自動化安裝及集群實現搭建過程
  • redis分布式鎖的問題與解決方法
  • redis stat的安裝指南
  • redis中使用java腳本實現分布式鎖
  • redis如何存儲對象與集合示例詳解
  • redis教程(七):key操作命令詳解
  • 使用redis實現ua池的方案
  • 深入理解redis_memcached失效原理(小結)
  • redis 集群搭建和簡單使用教程
  • 基于redis的限流器的實現(示例講解)
  • 如何查看redis最近使用的命令
  • REDIS學習查看redis狀態,以及rdb和aof兩種持久化方案的區別
  • Redis為什么這么快
  • 如何記錄和查詢Redis慢執行日志
  • linux下怎么進入redis操作
  • Redis在企業中都做什么用,用大白話講,說明白了就行
  • 為啥redis 使用跳表而不是使用 red-black
  • 為啥redis 使用跳表而不是使用 red-black
  • 怎么用java在redis進行數據庫操作
  • redis客戶端操作redis是阻塞的嗎
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁redisredis操作命令總結spring-data-redis操作redis知識總結php實現的redis操作通用類示例在c#中使用servicestackredis操作redis的實例代碼spring-data-redis操作redis cluster的示例代碼python筆記:mysql、redis操作方法python redis操作實例分析【連接、管道、發布和訂閱等】spring使用redis操作key-value的示例代碼30個php操作redis常用方法代碼例子redis 隊列操作的例子(php)redis的配置、啟動、操作和關閉方法redis自動化安裝及集群實現搭建過程redis分布式鎖的問題與解決方法redis stat的安裝指南redis中使用java腳本實現分布式鎖redis如何存儲對象與集合示例詳解redis教程(七):key操作命令詳解使用redis實現ua池的方案深入理解redis_memcached失效原理(小結)redis 集群搭建和簡單使用教程基于redis的限流器的實現(示例講解)超強、超詳細redis數據庫入門教程redis常用命令、常見錯誤、配置技redis操作命令總結redis中5種數據結構的使用場景介64位windows下安裝redis教程redis中使用redis-dump導出、導入redis中統計各種數據大小的方法redis常用命令小結讓redis在你的系統中發揮更大作用centos 6.6下redis安裝配置記錄基于redis實現的點贊功能設計思路詳解淺談redis采用不同內存分配器tcmalloc和j編譯安裝redisd的方法示例詳解使用 redis 流實現消息隊列的代碼redis列表類型_動力節點java學院整理redis安裝和配置_動力節點java學院整理redis入門教程_動力節點java學院整理gem install redis報錯的解決方案redis教程(八):事務詳解詳解centos7下配置redis并開機自啟動
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载