日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 數據庫 > Redis > 正文

Redis String 類型和 Hash 類型學習筆記與總結

2020-10-28 21:40:45
字體:
來源:轉載
供稿:網友

Linux 版本信息:

復制代碼 代碼如下:

cat /etc/issue  或cat /etc/redhat-release(Linux查看版本當前操作系統發行版信息)

CentOS release 6.6 (Final)

(一)String 類型

【定義】string 是最簡單的類型,你可以理解成與 Memcached 是一模一樣的類型,一個 key 對應一個 value,其上支持的操作與 Memcached 的操作類似。但它的功能更豐富。

string 類型是二進制安全的。意思是 redis 的 string 可以包含任何數據, 比如 jpg 圖片或者序 列化的對象。 從內部實現來看其實 string 可以看作 byte 數組,最大上限是 1G 字節。

【操作】

① set 方法

設置 key 對應的值為 string 類型的 value。

【例】添加 name = dee 的鍵值對:

復制代碼 代碼如下:

127.0.0.1:6379> set name dee
OK

設置成功。

② get 方法

【例】

復制代碼 代碼如下:

127.0.0.1:6379> get name
"dee"

獲取成功。

 

再次設置 name = deathmask,值會被覆蓋:

復制代碼 代碼如下:

127.0.0.1:6379> set name deathmask
OK

127.0.0.1:6379> get name
"deathmask"

③ setnx 方法

設置 key 對應的值為 string 類型的 value,如果 key 已經存在,返回 0,nx 表示 not exist。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> setnx name dee
(integer) 0


127.0.0.1:6379> setnx app weibo
(integer) 1


127.0.0.1:6379> get name
"deathmask"


127.0.0.1:6379> get app
"weibo"

表示 name 已經存在而且沒有更改,app 不存在則成功 set。

④ setex 方法

設置 key 對應的值為 string 類型的 value,并指定  此鍵值 對應的有效期。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> setex mobile 10 iphone
OK

127.0.0.1:6379> get mobile
"iphone"


127.0.0.1:6379> get mobile
"iphone"


127.0.0.1:6379> get mobile
(nil)

設置 mobile 的值為 iPhone,并且指定有效期為 10 秒。

⑤ setrange 方法

設定指定 key 的 value 值的子字符串

【例】將 dee 的 126 郵箱 替換為 gmail 郵箱

復制代碼 代碼如下:

127.0.0.1:6379> set email dee@126.com
OK

127.0.0.1:6379> get email
"dee@126.com"


127.0.0.1:6379> setrange email 4 gmail.com
(integer) 13


127.0.0.1:6379> get email
"dee@gmail.com"


其中 4 代表下標,(integer) 13 表示字符串的長度。

【例2】

復制代碼 代碼如下:

127.0.0.1:6379> set email dee@vip.ofim.com
OK

127.0.0.1:6379> get email
"dee@vip.ofim.com"


127.0.0.1:6379> setrange email 4 gmail.com
(integer) 16


127.0.0.1:6379> get email
"dee@gmail.comcom"


說明:如果替換的字符串沒有源字符串長,則只會把源字符串中相同長度的字符替換掉,同時保留源字符串中剩余的字符。

⑥ mset 方法

一次設置多個 key 值,成功返回 ok,表示所有的值都設置了,失敗返回 0,表示沒有任何值被設置。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> mset key1 dee1 key2 dee2
OK

127.0.0.1:6379> get key1
"dee1"


127.0.0.1:6379> get key2
"dee2"

⑦ msetnx 方法

一次設置多個 key 的值,成功返回 1,表示所有的值都被設置了。失敗返回 0 ,表示沒有任何值被設置,但是不會覆蓋已經存在的 key。

復制代碼 代碼如下:

127.0.0.1:6379> msetnx key3 dee3 key4 dee4
(integer) 1


127.0.0.1:6379> msetnx key3 dee333 key4 dee444 key5 dee5
(integer) 0


127.0.0.1:6379> get key3
"dee3"


127.0.0.1:6379> get key4
"dee4"


127.0.0.1:6379> get key5
(nil)


⑧ getset 方法

設置 key 的值,并返回 key 的舊值。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> getset key1 emperor
"dee1"

⑨ getrange 方法

獲取 key 的 value 值的子字符串。

復制代碼 代碼如下:

127.0.0.1:6379> get email
"dee@gmail.comcom"


127.0.0.1:6379> getrange email 0 12
"dee@gmail.com"


返回第 0 到第12 個字符。
⑩ mget 方法

一次獲取多個 key 的值,如果對應 key 不存在則對應返回 nil。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> mget key1 key2 key3 key4 key5
1) "emperor"
2) "dee2"
3) "dee3"
4) "dee4"
5) (nil)

⑪ incr 方法
對 key 的值做 加加 操作,并返回新的值。

【例】每次遞增1

復制代碼 代碼如下:

127.0.0.1:6379> set age 28
OK

127.0.0.1:6379> get age
"28"


127.0.0.1:6379> incr age
(integer) 29


127.0.0.1:6379> incr age
(integer) 30


127.0.0.1:6379> get age
"30"


【例2】
復制代碼 代碼如下:

127.0.0.1:6379> get real-age
(nil)

127.0.0.1:6379> incr real-age
(integer) 1


127.0.0.1:6379> get real-age
"1"

⑫ incrby 方法

同 incr 方法類似,加指定值,key 不存在時會設置 key,并認為原來的 value 為 0。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> get times
(nil)

127.0.0.1:6379> incrby times 5
(integer) 5


127.0.0.1:6379> get times
"5"


【例2】
復制代碼 代碼如下:

127.0.0.1:6379> incrby times -5
(integer) 0


127.0.0.1:6379> get times
"0"

⑬ decr 方法

對 key 的值做 減減操作。

⑭ decrby 方法

同 decr 方法類似,減指定值。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> get age
"30"


127.0.0.1:6379> decr age
(integer) 29


127.0.0.1:6379> decrby age 10
(integer) 19


127.0.0.1:6379> decrby age -10
(integer) 29

⑮ append 方法(重要)

給指定 key 的字符串追加 value ,返回新字符串的長度。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> get name
"deathmask"


127.0.0.1:6379> append name @163.com
(integer) 17


127.0.0.1:6379> get name
"deathmask@163.com"

⑯ strlen 方法

取指定 key 的 value 值的長度。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> get name
"deathmask@163.com"


127.0.0.1:6379> strlen name
(integer) 17

(二)Hash 類型

Redis hash 是一個 string 類型的 field 和 value 的 映射表。它的添加、刪除操作都是 0(1)(平均操作)。

hash 特別 適合用于存儲對象。相較于將對象的每個字段存成單個 string 類型(string 類型可以存儲對象序列化)。

將一個對象存儲在 hash 類型中會占用更少的內存,并且可以更方便的存取整個對象。

(省內存的原因是新建一個 hash 對象時開始是用 zipmap(又稱為 small hash)來存儲的。

這個 zipmap 其實并不是 hash table,但是 zipmap 相比正常的 hash 實現可以節省不少 hash 本身需要的一些元數據存儲開銷。

盡管 zipmap 的添加,刪除,查找都是 O(n),但是由于一般對象的 field 數量都不太多,所以使用 zipmap 也是很快的,也就是說添加刪除平均還是 O(1)。

如果 field 或者 value的大小超出一定限制后, Redis 會在內部自動將 zipmap 替換成正常的 hash 實現. 這個限制可以在配置文件中指定。

hash-max-zipmap-entries 64 #配置字段最多 64 個,hash-max-zipmap-value 512 #配置 value 最大為 512 字節)

【操作】

① hset 方法 / hget 方法

設置hash field 為指定值,如果 key 不存在,則先創建。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hset myhash field1 hello
(integer) 1

說明:myhash 是 hash 表的名稱,field1 是 hash 表的一個字段,hello 是這個字段對應的值。存儲用戶比較方便。

【例2】

復制代碼 代碼如下:

127.0.0.1:6379> hset user:001 name dee
(integer) 1


127.0.0.1:6379> hget user:001 name
"dee"

說明:設置 user 表 id 為 001 的用戶,用戶名為 dee。

 可以把 user:001 看作一張表。

② hsetnx 方法

設置 hash field 為指定值,如果 key 不存在,則先創建;如果存在,則返回 0。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hsetnx myhash field "hello"
(integer) 1


127.0.0.1:6379> hsetnx myhash field "hello!"
(integer) 0


127.0.0.1:6379> hget myhash field
"hello"

③ hmset 方法

同時設置 hash 的多個 field

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hmset user:002 name dee specialty php
OK

127.0.0.1:6379> hget user:002 name
"dee"


127.0.0.1:6379> hget user:002 specialty
"php"

④ hget 方法

獲取全部指定的 hash field。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hmget user:002 name specialty
1) "dee"
2) "php"

⑤ hincrby 方法

指定的 hash field 加上給定值。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hmset user:002 name dee specialty redis age 28
OK

127.0.0.1:6379> hincrby user:002 age -6
(integer) 22


127.0.0.1:6379> hmget user:002 name specialty age
1) "dee"
2) "redis"
3) "22"


127.0.0.1:6379> hincrby user:002 age 5
(integer) 27


127.0.0.1:6379> hmget user:002 name specialty age
1) "dee"
2) "redis"
3) "27"

⑥ hexists 方法

測試指定 field 是否存在。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hexists user:002 name
(integer) 1


127.0.0.1:6379> hexists user:002 sex
(integer) 0


⑦ hlen 方法

返回指定 hash 的 field 數量。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hlen user:002
(integer) 3

⑧ hdel 方法

刪除指定 hash 的 field。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hdel user:002 age
(integer) 1


127.0.0.1:6379> hget user:002 age
(nil)


⑨ hkeys 方法(類似 PHP 中 array_keys() 方法)

返回 hash 的所有 field。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hkeys user:002
1) "name"
2) "specialty"

⑩ hvals 方法(類似 PHP 中的 array_values() 方法)

返回 hash 的所有 value。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hvals user:002
1) "dee"
2) "redis"

⑪ hgetall 方法

獲取某個 hash 中全部的 field 及 value。

【例】

復制代碼 代碼如下:

127.0.0.1:6379> hgetall user:002
1) "name"
2) "dee"
3) "specialty"
4) "redis"

【總結】設置 hash 類型的數據,首先要設置 hash 的表,然后設置 hash 的 field,最后設置 hash field 的 value。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲乱码中文字幕| 亚洲 欧美综合在线网络| 日韩欧美一级精品久久| 日韩精品视频在线观看视频| wwwwww国产| 成年人黄国产| 亚洲热线99精品视频| 精品国内自产拍在线视频| 中文字幕中文字幕精品| 日本亚洲视频在线| 日韩中文字幕第一页| 日韩欧美国产免费播放| 黄色国产网站在线观看| 国产视频一区二| 国产在线观看91| 黄色一区二区视频| 国产无遮挡在线视频免费观看| 欧美日韩中文字幕日韩欧美| 国产不卡视频在线| 精品久久久视频| 日韩国产一区久久| 国产一区精品| 中文字幕在线观看亚洲| 欧美日韩国产在线播放| 综合激情国产一区| 不卡av免费在线| 日韩视频中文| 亚洲一区在线观看网站| 日韩欧美国产免费播放| 二区视频在线观看| 国产黄在线观看| 中文字幕在线高清| 国产婷婷色一区二区三区在线| 天天综合日日夜夜精品| 91精品国产91| 97国产视频| 99精品999| 91精品国产综合久久久久久| 亚洲乱码中文字幕综合| 欧美日韩在线观看一区| 91精品在线国产| 91精品观看| 在线观看国产一级片| 一级免费a一片| 日韩视频一区在线观看| 91欧美日韩在线| 日韩三级在线播放| 欧美午夜影院在线视频| 久久精品国产2020观看福利| 国产一区日韩| 国产拍揄自揄精品视频麻豆| 亚洲一区导航| 亚洲综合在线中文字幕| 亚洲a级在线播放观看| 中文字幕最新精品| www日韩在线观看| 久精品在线观看| 亚洲欧洲一区二区天堂久久| 久久福利视频一区二区| 日韩欧美一二三四区| 精品欧美久久久| 国产一区精品在线| 中文在线一区| 中文字幕高清在线播放| 蜜臀91精品国产高清在线观看| 亚洲综合日韩| 精品一二三区视频| 久久蜜桃一区二区| 国产欧美日韩精品在线观看| 精品人妻一区二区免费视频| 天天在线视频色| 91精品日本| 韩国v欧美v日本v亚洲| 搞黄在线观看| 欧美日韩免费精品| 欧美三级在线看| 日韩欧美中文在线| 中文字幕最新精品| 日韩精品视频在线播放| 国产福利免费观看| 久久香蕉精品| 欧美日韩国产片| 一区二区三区鲁丝不卡| 欧美日韩中国免费专区在线看| 国产视频一区三区| 最近中文av字幕在线中文| a级在线免费观看| 国产黄色片中文字幕| 国产不卡视频在线| 欧美日韩国产观看视频| 中文字幕精品在线视频| 国产小视频在线观看免费| 天堂在线中文资源| 欧美专区中文字幕| 国产一区二中文字幕在线看| 亚洲视频日韩| 日韩精品视频免费| 天堂在线视频中文网| 亚洲一区视频在线观看视频| 日本视频久久久| 亚洲福利在线看| 亚洲免费在线视频一区 二区| 国产亚洲二区| 日韩视频免费直播| 亚洲免费视频一区| 亚洲第一网中文字幕| 欧美在线日韩| 色国产在线视频| 欧美日韩在线国产| 中文字幕第一页在线播放| 亚洲三级av| 91国内精品在线视频| 激情国产在线| 亚洲专区一二三| 91精品视频观看| 亚洲一区视频在线观看视频| 中文字幕国产亚洲| 亚洲羞羞网站| 国产日韩综合| 日韩精品不卡一区二区| 日韩在线中文| 在线视频国产三级| 91久久视频| 日本视频久久久| 91精品免费观看| 亚洲热在线观看| 日韩欧美中文字幕精品| 日韩精品在线播放| 中文字幕在线观看视频www| 中文字幕日韩欧美在线视频| 午夜精品免费视频| 国产免费不卡av| 欧美日韩一级视频| 91精品国产色综合久久不卡蜜臀 | 中文在线日韩| 高清不卡一区二区| 欧美日韩国产高清一区| 欧美日韩高清一区二区| 国产视频一区三区| 日韩国产在线观看一区| 欧美专区中文字幕| 久久99久久久久久久噜噜| 欧美日韩乱国产| 免费高清特黄a大片| 久久久另类综合| 久久久久久久久综合| 婷婷中文字幕一区三区| 国产乱码在线| va中文字幕| 精品欧美久久久| 亚洲免费在线视频一区 二区| 久久人人精品| 99国产成 人 综合 亚洲欧美| 日韩中文在线视频| 一级片在线免费看| 最近中文字幕在线中文视频| 日韩网站中文字幕| 精品久久久精品| 日韩欧美中文视频| 日韩三区免费| 在线免费播放av| 久久精品国产91精品亚洲| 樱花草www在线| 福利在线国产| 中文字幕欧美日韩在线不卡| 日韩色在线观看| 92久久精品| 一区二区三区久久| 国产高清视频一区二区| 亚洲.国产.中文慕字在线| 欧美专区中文字幕| 国产在成人精品线拍偷自揄拍| 国产欧美日韩综合| 日韩亚洲欧美中文三级| 青青久在线视频免费观看| 日韩视频精品在线| 99精品视频国产| 91精品国产高清91久久久久久| 久久香蕉av| 日韩在线中文视频| 在线视频日韩欧美| 色综合天天综合网国产成人综合天| 精品久久久久久综合日本欧美| 日本а中文在线天堂| 99国产一区| 欧美 日韩 国产在线观看| 天天摸日日摸狠狠添| 国产欧美日韩不卡免费| 伊人亚洲视频| 久久婷婷综合国产| 国产裸体歌舞团一区二区| 亚洲一二三不卡| 国产日韩精品视频| 久久精品在线观看| 日韩一级免费视频| 午夜一区二区视频| 欧美婷婷精品激情| 日韩中文字幕视频在线| 国产字幕中文| 福利一区二区| 久久综合九色欧美综合狠狠| 亚洲大片精品永久免费| 国产欧美日韩久久| 日韩欧美国产成人精品免费| 欧美成人二区| 欧美日韩国产999| 在线国产91| 99久久婷婷| www日韩欧美| 日韩视频一区二区在线观看| 国产v日产∨综合v精品视频| 国产高清在线一区| 日韩欧美国产综合| 久久久久久欧美| 国产精品福利视频一区二区三区| 欧美成人二区| 亚洲综合在线小说| 91精品视频国产| 国产乱国产乱300精品| 国内激情久久| 中文字幕在线观看欧美| 日本a级黄色| www.中文字幕在线| 亚洲大胆人体av| 欧美日韩中文字幕视频| 国产乱一区二区| 欧美日韩一级黄| 欧美日韩尤物久久| 亚洲狠狠婷婷综合久久久久图片| 免费高清特黄a大片| 欧美中文字幕精品| 日韩av综合在线观看| 国产久卡久卡久卡久卡视频精品| 天堂在线中文| 久久精品99国产国产精| 尤物在线精品| 亚洲大片精品永久免费| 92久久精品| 日韩欧美中文字幕在线观看| 欧美日韩国产综合视频在线观看| 欧美 日韩 国产在线观看| 国产不卡在线| 日韩精品欧美在线| 福利在线国产| 国产 中文 字幕 日韩 在线| 欧美日韩综合在线观看| 日韩精品福利一区二区三区| 亚洲成av人片| 欧美久久久网站| 欧洲精品二区| 91 中文字幕| 搞黄在线观看| 国产网站欧美日韩免费精品在线观看| 欧美 中文字幕| 国产欧美中文在线| 国产黄色一区| 日本a口亚洲| 欧美日韩在线视频免费观看| 国产久卡久卡久卡久卡视频精品| 日韩欧美国产不卡| 欧美日韩国产观看视频| 欧洲精品二区| 亚洲视频在线观看三级| 69av亚洲| 中文字幕亚洲一区二区av在线| 91精品久久久久久久久久| 亚洲男女av一区二区| 国产在线观看黄色| 日韩中文字幕在线视频播放 | 日韩国产91| 亚洲第一视频网站| 91久久久久久久久| 久久久久久91| 在线日韩中文字幕| 久久精品国产91精品亚洲| 欧美一级手机免费观看片| 精品国产免费视频| 国产不卡在线| 日韩一级中文字幕| 欧美三级在线视频| 国产高清精品在线| 日韩中文字幕观看| 欧美亚洲免费高清在线观看| 精品欧美不卡一区二区在线观看| 中文字幕第一页在线| 亚洲成a人片在线www| 日韩国产一区久久| 日韩在线视频网| 亚洲综合在线视频| 欧美日韩国产综合久久| a视频免费看| 亚洲一区在线观看网站| 中文字幕在线日韩| 国产亚洲一区字幕| 亚洲欧洲日产国码av系列天堂| 欧美亚洲天堂| 久久视频www| 日本а中文在线天堂| 久久夜色精品国产欧美乱极品| 国产网站欧美日韩免费精品在线观看| 蜜臀国产一区| 国产日韩中文字幕| 亚洲第一视频在线观看| 欧美日韩高清在线| 日韩中文字幕第一页| 国产精品福利视频一区二区三区| av不卡免费看| 国产区高清在线| 在线日韩中文| 日韩中文字幕在线视频播放| 日韩在线观看视频一区| 亚洲美女视频一区| 国产天堂素人系列在线视频| 精品一区二区在线观看视频| 亚洲天堂国产视频| 欧美日韩在线播放一区| 一区二区三区在线|网站| 欧美.日韩.国产.一区.二区| 午夜影院在线观看欧美| 国产在线黄色片| 中文字幕99| 亚洲 欧美 中文字幕| 日韩中文在线中文网三级| 中文字幕日韩欧美在线| 搞黄在线观看| 91精品国产综合久久久久久| 91精品在线观看入口| 久久激情一区| 五月天久久比比资源色| 亚洲大片精品永久免费| www.精品视频| 国产黄色一区| 日韩视频在线免费播放| 国产成人中文字幕| 日本国产在线视频| 精品一二三四| 国产传媒久久久| 91吃瓜在线观看| 中文字幕 乱码 中文乱码91| 91精品国产综合久久香蕉的特点| 91精品国产综合久久久久| 精品色蜜蜜精品视频在线观看| 欧美日韩亚洲天堂| 亚洲一区三区在线观看| 国产中文伊人| 国产乱国产乱老熟300| 高清1区2区| 国产中文伊人| 国产欧美日韩中文字幕在线| 欧美日本精品| 久久99精品国产| 日韩视频在线一区二区| 91亚洲欧美| 日韩一级网站| 国产又粗又猛又爽又黄91精品| 国产xxx在线| 一区三区视频| 亚洲欧洲日韩在线| 欧美日韩国产中字| 91精品国产91久久久久久不卡| 日韩精品视频在线免费观看| 久久麻豆视频| 日韩三级免费观看| 91精品国产综合久久蜜臀| 日韩精品丝袜在线| 国产导航在线| 亚洲日本欧美日韩高观看| 日韩精品在线观| 久久99精品久久久久子伦| 一本大道一区二区三区| 日韩欧美在线影院| 天天在线视频色| 午夜一区二区三区免费| 欧美日韩亚洲综合在线| 国产在线高清精品| 免费高清在线一区| a视频免费在线观看| 亚洲成av人片一区二区密柚| av免费在线不卡| 国产三级视频网站| 黄色一区二区在线| 日韩精品中文在线观看| 久久精品电影| 亚洲日产av中文字幕| 日本а中文在线天堂| 国产在线观看色| 欧美日韩国产成人| 国产高清在线一区| 国产黄在线播放| 国产色综合网| 欧美中文字幕| 一本久久a久久精品亚洲| 欧美成人vr18sexvr| 国产福利三区| 欧美日韩三级视频| а√天堂中文在线资源8| 交视频在线观看国产| 日韩欧美在线影院| 欧美高清视频一区二区三区| 中文字幕日韩精品在线|