亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫(kù) > Redis > 正文

Redis String 類型和 Hash 類型學(xué)習(xí)筆記與總結(jié)

2020-10-28 21:40:45
字體:
供稿:網(wǎng)友

Linux 版本信息:

復(fù)制代碼 代碼如下:

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

CentOS release 6.6 (Final)

(一)String 類型

【定義】string 是最簡(jiǎn)單的類型,你可以理解成與 Memcached 是一模一樣的類型,一個(gè) key 對(duì)應(yīng)一個(gè) value,其上支持的操作與 Memcached 的操作類似。但它的功能更豐富。

string 類型是二進(jìn)制安全的。意思是 redis 的 string 可以包含任何數(shù)據(jù), 比如 jpg 圖片或者序 列化的對(duì)象。 從內(nèi)部實(shí)現(xiàn)來看其實(shí) string 可以看作 byte 數(shù)組,最大上限是 1G 字節(jié)。

【操作】

① set 方法

設(shè)置 key 對(duì)應(yīng)的值為 string 類型的 value。

【例】添加 name = dee 的鍵值對(duì):

復(fù)制代碼 代碼如下:

127.0.0.1:6379> set name dee
OK

設(shè)置成功。

② get 方法

【例】

復(fù)制代碼 代碼如下:

127.0.0.1:6379> get name
"dee"

獲取成功。

 

再次設(shè)置 name = deathmask,值會(huì)被覆蓋:

復(fù)制代碼 代碼如下:

127.0.0.1:6379> set name deathmask
OK

127.0.0.1:6379> get name
"deathmask"

③ setnx 方法

設(shè)置 key 對(duì)應(yīng)的值為 string 類型的 value,如果 key 已經(jīng)存在,返回 0,nx 表示 not exist。

【例】

復(fù)制代碼 代碼如下:

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 已經(jīng)存在而且沒有更改,app 不存在則成功 set。

④ setex 方法

設(shè)置 key 對(duì)應(yīng)的值為 string 類型的 value,并指定  此鍵值 對(duì)應(yīng)的有效期。

【例】

復(fù)制代碼 代碼如下:

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)

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

⑤ setrange 方法

設(shè)定指定 key 的 value 值的子字符串

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

復(fù)制代碼 代碼如下:

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 代表下標(biāo),(integer) 13 表示字符串的長(zhǎng)度。

【例2】

復(fù)制代碼 代碼如下:

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"


說明:如果替換的字符串沒有源字符串長(zhǎng),則只會(huì)把源字符串中相同長(zhǎng)度的字符替換掉,同時(shí)保留源字符串中剩余的字符。

⑥ mset 方法

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

【例】

復(fù)制代碼 代碼如下:

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 方法

一次設(shè)置多個(gè) key 的值,成功返回 1,表示所有的值都被設(shè)置了。失敗返回 0 ,表示沒有任何值被設(shè)置,但是不會(huì)覆蓋已經(jīng)存在的 key。

復(fù)制代碼 代碼如下:

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 方法

設(shè)置 key 的值,并返回 key 的舊值。

【例】

復(fù)制代碼 代碼如下:

127.0.0.1:6379> getset key1 emperor
"dee1"

⑨ getrange 方法

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

復(fù)制代碼 代碼如下:

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


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


返回第 0 到第12 個(gè)字符。
⑩ mget 方法

一次獲取多個(gè) key 的值,如果對(duì)應(yīng) key 不存在則對(duì)應(yīng)返回 nil。

【例】

復(fù)制代碼 代碼如下:

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

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

【例】每次遞增1

復(fù)制代碼 代碼如下:

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】
復(fù)制代碼 代碼如下:

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 不存在時(shí)會(huì)設(shè)置 key,并認(rèn)為原來的 value 為 0。

【例】

復(fù)制代碼 代碼如下:

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】
復(fù)制代碼 代碼如下:

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


127.0.0.1:6379> get times
"0"

⑬ decr 方法

對(duì) key 的值做 減減操作。

⑭ decrby 方法

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

【例】

復(fù)制代碼 代碼如下:

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 ,返回新字符串的長(zhǎng)度。

【例】

復(fù)制代碼 代碼如下:

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 值的長(zhǎng)度。

【例】

復(fù)制代碼 代碼如下:

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


127.0.0.1:6379> strlen name
(integer) 17

(二)Hash 類型

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

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

將一個(gè)對(duì)象存儲(chǔ)在 hash 類型中會(huì)占用更少的內(nèi)存,并且可以更方便的存取整個(gè)對(duì)象。

(省內(nèi)存的原因是新建一個(gè) hash 對(duì)象時(shí)開始是用 zipmap(又稱為 small hash)來存儲(chǔ)的。

這個(gè) zipmap 其實(shí)并不是 hash table,但是 zipmap 相比正常的 hash 實(shí)現(xiàn)可以節(jié)省不少 hash 本身需要的一些元數(shù)據(jù)存儲(chǔ)開銷。

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

如果 field 或者 value的大小超出一定限制后, Redis 會(huì)在內(nèi)部自動(dòng)將 zipmap 替換成正常的 hash 實(shí)現(xiàn). 這個(gè)限制可以在配置文件中指定。

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

【操作】

① hset 方法 / hget 方法

設(shè)置hash field 為指定值,如果 key 不存在,則先創(chuàng)建。

【例】

復(fù)制代碼 代碼如下:

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

說明:myhash 是 hash 表的名稱,field1 是 hash 表的一個(gè)字段,hello 是這個(gè)字段對(duì)應(yīng)的值。存儲(chǔ)用戶比較方便。

【例2】

復(fù)制代碼 代碼如下:

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


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

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

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

② hsetnx 方法

設(shè)置 hash field 為指定值,如果 key 不存在,則先創(chuàng)建;如果存在,則返回 0。

【例】

復(fù)制代碼 代碼如下:

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 方法

同時(shí)設(shè)置 hash 的多個(gè) field

【例】

復(fù)制代碼 代碼如下:

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。

【例】

復(fù)制代碼 代碼如下:

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

⑤ hincrby 方法

指定的 hash field 加上給定值。

【例】

復(fù)制代碼 代碼如下:

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 方法

測(cè)試指定 field 是否存在。

【例】

復(fù)制代碼 代碼如下:

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 數(shù)量。

【例】

復(fù)制代碼 代碼如下:

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

⑧ hdel 方法

刪除指定 hash 的 field。

【例】

復(fù)制代碼 代碼如下:

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。

【例】

復(fù)制代碼 代碼如下:

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

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

返回 hash 的所有 value。

【例】

復(fù)制代碼 代碼如下:

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

⑪ hgetall 方法

獲取某個(gè) hash 中全部的 field 及 value。

【例】

復(fù)制代碼 代碼如下:

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

【總結(jié)】設(shè)置 hash 類型的數(shù)據(jù),首先要設(shè)置 hash 的表,然后設(shè)置 hash 的 field,最后設(shè)置 hash field 的 value。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品欧美大片| 中文字幕一区二区视频| 国产成人极品视频| 欧美日韩精品欧美日韩精品一| 日韩免费毛片视频| 性欧美videos另类喷潮| 国产a∨精品一区二区三区仙踪林| 偷拍自拍一区| 国产偷激情在线| 一二三四日本在线| 99精品一级欧美片免费播放| www.嫩草免费在线观看| 国产一区二区三区综合| 欧美日韩美少妇| 国产黄色网页| 欧美激情福利| 久久久久久久久久久影视| 电影91久久久| 日本一区二区三区四区在线视频| 成人爽a毛片免费啪啪动漫| 欧美一区综合| 日本高清视频免费观看| 国产理论电影在线| 亚洲天堂男人av| 一道本在线观看| 国产福利久久| 欧美老女人在线视频| 欧美中文在线观看| 精品国产免费av| 精品人妻一区二区三区四区| 国产精品亚洲精品| 国产欧美日韩精品高清二区综合区| 国产精品实拍| 欧美一区二区三区日韩视频| 男男h黄动漫啪啪无遮挡软件| 在线观看免费av网址| 大伊香蕉精品视频在线| 日韩免费一区二区三区在线播放| 国产一二精品视频| 国产麻豆乱码精品一区二区三区| 亚洲精品字幕在线观看| 欧美xxxxx精品| 136福利第一导航国产在线| 国产精品丝袜久久久久久app| 国产精品理论在线观看| 欧美日韩视频在线播放| 精品在线免费观看| 美女主播精品视频一二三四| 亚洲tv在线观看| 青草视频.com| 精品久久久久久久久久久久久久久久| 澳门成人av| 成人一二三区视频| 依人在线免费视频| 日本韩国免费观看| 日韩高清av一区二区三区| 欧美乱做爰xxxⅹ久久久| 国产日韩欧美一区二区| 国产又粗又长又大视频| 欧美色图亚洲自拍| 亚洲视频 中文字幕| 凹凸精品一区二区三区| 日韩电影免费在线看| 欧美高清videos性极品| 亚洲图片欧洲图片日韩av| 亚洲黄色免费电影| 国产吧在线视频| 欧美一级淫片免费视频魅影视频| 亚洲午夜久久久久久久久电影网| 91杏吧porn蝌蚪| 国产欧亚日韩视频| 国产成人啪精品视频免费网| 国产精品视频一二三区| 日韩午夜在线观看视频| 夜色视频网站| 亚洲色图视频在线观看| 蜜桃视频在线观看免费视频| 欧美精品激情在线观看| 毛片免费看不卡网站| 四虎在线免费观看| 日韩精品视频在线观看网址| 人妻一区二区三区| 国产一级视频在线| 成人免费毛片东京热| 涩涩视频免费网站| 91麻豆精品国产自产在线观看一区| 日韩在线不卡一区| 国产人妻精品一区二区三区| 裸体一区二区| 国产精品都在这里| 色欲一区二区三区精品a片| 国产7777| 久久久精品欧美| av午夜在线观看| 色综合久久九月婷婷色综合| 欧美大胆a视频| 777.av| 免费日韩视频在线观看| 国产精品高潮呻吟AV无码| 久久久久久久久久看片| 国产在线第一页| 一区在线观看视频| 91精品国产高清一区二区三密臀| 无需播放器亚洲| 亚洲v日本v欧美v久久精品| 动漫一区二区在线| 99精品久久99久久久久| 在线欧美成人| 97人摸人人澡人人人超一碰| 成人va在线观看| 中文字幕一区二区中文字幕| 成人在线观看高清| 国产精品美女毛片真酒店| 欧洲精品乱码久久久久蜜桃| 亚洲欧美日韩在线不卡| 99精品一区二区三区| 毛片毛片毛片毛| www.久久久.com| 香蕉视频官网在线观看日本一区二区| 免费中文字幕日韩欧美| 国产青草视频在线观看视频| 麻豆精品免费视频| 久久天天躁夜夜躁狠狠躁2022| 中国黄色一级视频| 99re66热这里只有精品8| 中文一区一区三区高中清不卡免费| 香蕉视频禁止18| 欧美日韩视频精品一区二区| 国产91精品在线| 婷婷成人基地| 欧美日韩一区二区三区四区五区| 俄罗斯黄色一级片| 国产一级片在线播放| 好操啊在线观看免费视频| 国产偷亚洲偷欧美偷精品| 黄色片在线免费| 欧美大肚乱孕交hd孕妇| 久久国产婷婷国产香蕉| 你懂的视频在线| 19j韩国主播韩宝贝在线| 成人av在线播放| 中文字幕在线观| 欧美成人午夜激情视频| 精品剧情v国产在线观看| 色综合久久久久无码专区| 中文字幕久久av| 999精品免费视频| 在线天堂视频| 久久九九久久九九| 日韩精品91亚洲二区在线观看| 麻豆视频网站在线观看| 顶级网黄在线播放| 国产一级片免费看| 国产精品久久久久久久久男| 久久久久久噜噜噜久久久精品| 91精品国产综合久久男男| 国产一区丝袜| 亚洲福利影院| 玖玖玖电影综合影院| 91九色在线porn| 91九色在线视频| 中文字幕日韩电影| 亚洲精品福利在线观看| 精品久久国产字幕高潮| 久久午夜激情| 久久久久国产精品免费| 久久精品免费观看| 韩国理伦片久久电影网| 在线观看精品视频一区二区三区| 亚洲第一黄网| 91精品国自产在线偷拍蜜桃| 色九视频91| 一级片手机在线观看| www.色播.com| 热久久精品免费视频| 欧美激情按摩在线| 日本老太婆做爰视频| 国产视频在线播放| 夜夜嗨av色一区二区不卡| 精品久久久久久乱码天堂| 日韩第二十一页| 日韩精品一二区| 欧美大胆a人体大胆做受| 最近中文字幕第一页| 暧暧视频免费| 小嫩嫩12欧美| 色先锋资源久久综合5566| 一个人免费观看视频www在线播放| 久久亚洲国产精品日日av夜夜| 久久福利视频网| 51蜜桃传媒精品一区二区| 国产精品传媒精东影业在线| 香艳视频网站| 黄色一级片在线免费观看| 精品欧美乱码久久久久久1区2区| 午夜成年人在线免费视频| 欧美精品丝袜久久久中文字幕| 国产精品66部| 思思99热久久精品在线6| 亚洲成人xxx| 成人中文字幕+乱码+中文字幕| 欧美日韩免费看片| 欧美又粗又硬又大久久久| 99精品美女| 国产一二三区在线播放| 国产第一页在线观看| 国产精品你懂的| 欧美丝袜丝交足nylons172| 日韩亚洲一区在线播放| 一区二区三区成人在线视频| 国产精品天美传媒入口| 欧美一区二区高清| 欧美一级二级在线观看| 精品视频在线播放一区二区三区| 国产精品夜夜嗨| 羞羞网站在线免费观看| 精品亚洲国产成av人片传媒| 久久久久99精品成人| 黄色网址在线免费看| 福利视频在线| 91蝌蚪porny九色| 久久久久久有精品国产| 国产午夜精品一区二区三区视频| 成人看片毛片免费播放器| 亚洲а∨精品天堂在线| 国产又爽又黄视频| 91中文字幕在线视频| 天天操天天射天天色| 一区二区91美女张开腿让人桶| 国产一级二级三级视频| 国产视频福利在线| 国产欧美一区二区三区小说| 日本a级片久久久| 激情五月婷婷小说| 男人天堂欧美日韩| silk一区二区三区精品视频| 欧美日韩第一区| 欧美激情1区2区3区| 好吊的妞视频这里都有| 欧美人成在线观看ccc36| 国产一区啦啦啦在线观看| 黄色在线论坛| 日韩免费观看高清完整版| 亚洲国产精品久久久久婷婷884| 亚洲乱码国产乱码精品| 亚洲精品永久www嫩草| 国产福利视频网站| 国产精品一区二区三区网站| 中文国产成人精品| 久久午夜视频| 大桥未久av一区二区三区| 你懂得在线观看| 91尤物国产福利在线观看| 欧美成人精品二区三区99精品| 亚洲欧美日韩综合精品网| 欧美日韩你懂得| aaa国产精品| 中国国产一级毛片| av高清一区二区| 国产一区二区三区视频在线观看| 中文在线资源观看网站视频免费不卡| 国产永久免费高清在线观看| 一二三四视频社区在线| 九九这里只有精品视频| 激情在线观看视频| 亚洲成人精品| 国产成人精品免费视| 欧美日韩中文字幕在线观看| 国产精品1区二区.| 麻豆国产一区二区三区四区| 亚洲成人一区二区在线观看| 一区二区视频在线观看免费的| 无码人妻黑人中文字幕| 成人精品一区二区三区中文字幕| 免费无码国产精品| 91亚洲精品一区二区| 国产亚洲综合视频| 1024国产精品| 亚洲69av| 综合视频一区| 日韩精品一区二区三区中文字幕| 四虎影视国产精品| 欧美午夜片欧美片在线观看| japanese在线视频| 国产欧美日韩中文久久| 可播放的18gay1069| 国产自产v一区二区三区c| 蜜臀aⅴ国产精品久久久国产老师| 国产一级爱c视频| 色婷婷综合久久久中文字幕| 伊人开心综合网| 午夜免费一区二区| 亚洲影院在线看| 日韩精品欧美成人高清一区二区| 免费黄网站欧美| 99久久综合狠狠综合久久| 欧美1级2级| 国产精品毛片一区视频播| 欧美精品v日韩精品v韩国精品v| 欧美大肚乱孕交hd孕妇| 国产麻豆剧果冻传媒视频杜鹃| 国产欧美日韩综合精品二区| 亚洲a一级视频| 蜜臀av一区二区| 亚洲国产精品成人综合久久久| 国产91精品久久久久久久| 日本一区二区三区电影| 久久精品伊人| 99re在线视频观看| 亚洲va欧美va人人爽午夜| 麻豆精品免费视频入口| 亚洲免费成人网| 一区二区三区精品在线观看| 九色中文视频| 国产精品一二二区| 精品国产一区二区三区香蕉沈先生| 成年人三级视频| 日韩欧美国产一区在线观看| 永久免费看mv网站入口78| 亚洲成人生活片| 国产亚洲欧美久久久久| 久久综合伊人77777麻豆| 韩国三级电影在线观看婷婷| 天堂成人在线| 欧美伦理视频在线观看| 综合久久亚洲| 亚洲一区美女视频在线观看免费| 国语精品中文字幕|