Redis是一個(gè)開源的,先進(jìn)的 key-value 存儲(chǔ)可用于構(gòu)建高性能,可擴(kuò)展的 Web 應(yīng)用程序的解決方案。Redis官方網(wǎng)網(wǎng)站是:http://www.redis.io/,如下:
Redis 有三個(gè)主要使其有別于其它很多競爭對(duì)手的特點(diǎn):
- Redis是完全在內(nèi)存中保存數(shù)據(jù)的數(shù)據(jù)庫,使用磁盤只是為了持久性目的;
- Redis相比許多鍵值數(shù)據(jù)存儲(chǔ)系統(tǒng)有相對(duì)豐富的數(shù)據(jù)類型;
- Redis可以將數(shù)據(jù)復(fù)制到任意數(shù)量的從服務(wù)器中;
Redis優(yōu)點(diǎn)
- 異常快速 : Redis是非??斓?,每秒可以執(zhí)行大約110000設(shè)置操作,81000個(gè)/每秒的讀取操作。
- 支持豐富的數(shù)據(jù)類型 : Redis支持最大多數(shù)開發(fā)人員已經(jīng)知道如列表,集合,可排序集合,哈希等數(shù)據(jù)類型。這使得在應(yīng)用中很容易解決的各種問題,因?yàn)槲覀冎滥男﹩栴}處理使用哪種數(shù)據(jù)類型更好解決。
- 操作都是原子的 : 所有 Redis 的操作都是原子,從而確保當(dāng)兩個(gè)客戶同時(shí)訪問 Redis 服務(wù)器得到的是更新后的值(最新值)。
- MultiUtility工具:Redis是一個(gè)多功能實(shí)用工具,可以在很多如:緩存,消息傳遞隊(duì)列中使用(Redis原生支持發(fā)布/訂閱),在應(yīng)用程序中,如:Web應(yīng)用程序會(huì)話,網(wǎng)站頁面點(diǎn)擊數(shù)等任何短暫的數(shù)據(jù);
Redis環(huán)境
要在 Ubuntu 上安裝 Redis,打開終端,然后輸入以下命令:
$sudo apt-get update
$sudo apt-get install redis-server
這將在您的計(jì)算機(jī)上安裝Redis
啟動(dòng) Redis
查看 redis 是否還在運(yùn)行
這將打開一個(gè) Redis 提示符,如下圖所示:
在上面的提示信息中:127.0.0.1 是本機(jī)的IP地址,6379是 Redis 服務(wù)器運(yùn)行的端口?,F(xiàn)在輸入 PING 命令,如下圖所示:
redis 127.0.0.1:6379> ping
PONG
這說明現(xiàn)在你已經(jīng)成功地在計(jì)算機(jī)上安裝了 Redis。
在Ubuntu上安裝Redis桌面管理器
要在Ubuntu 上安裝 Redis桌面管理,可以從 http://redisdesktop.com/download 下載包并安裝它。
Redis 桌面管理器會(huì)給你用戶界面來管理 Redis 鍵和數(shù)據(jù)。
Redis數(shù)據(jù)類型
Redis 支持5種數(shù)據(jù)類型,說明如下:
字符串
Redis 字符串是一個(gè)字節(jié)序列。在 Redis 中字符串是二進(jìn)制安全的,這意味著它們沒有任何特殊終端字符來確定長度,所以可以存儲(chǔ)任何長度為 512 兆的字符串。
示例
redis 127.0.0.1:6379> SET name "yiibai"
OK
redis 127.0.0.1:6379> GET name
"yiibai"
在上面的例子中,SET 和 GET 是 Redis 命令,name 和 "yiibai" 是存儲(chǔ)在 Redis 的鍵和字符串值。
哈希
Redis哈希是鍵值對(duì)的集合。 Redis哈希是字符串字段和字符串值之間的映射,所以它們用來表示對(duì)象。
示例
redis 127.0.0.1:6379> HMSET user:1 username yiibai password yiibai points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "yiibai"
3) "password"
4) "yiibai"
5) "points"
6) "200"
在上面的例子中,哈希數(shù)據(jù)類型用于存儲(chǔ)包含用戶基本信息的用戶對(duì)象。這里 HSET,HEXTALL 是 Redis 命令同時(shí) user:1 也是一個(gè)鍵。
列表
Redis 列表是簡單的字符串列表,通過插入順序排序??梢蕴砑右粋€(gè)元素到 Redis 列表的頭部或尾部。
示例
redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
列表的最大長度為 232 - 1 個(gè)元素(4294967295,每個(gè)列表的元素超過四十億)。
集合
Redis 集合是字符串的無序集合。在 Redis 可以添加,刪除和測試成員存在的時(shí)間復(fù)雜度為 O(1)。
示例
redis 127.0.0.1:6379> sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist mongodb
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist
1) "rabitmq"
2) "mongodb"
3) "redis"
注:在上面的例子中 rabitmq 被添加兩次,但由于它是只集合具有唯一特性。集合中的成員最大數(shù)量為 232 - 1(4294967295,每個(gè)集合有超過四十億條記錄)。
集合排序
不同的是,一個(gè)有序集合的每個(gè)成員都可以排序,就是為了按有序集合排序獲取它們,按權(quán)重分值從最小到最大排序。雖然成員都是獨(dú)一無二的,按權(quán)重分?jǐn)?shù)值可能會(huì)重復(fù)。
示例
redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
Redis鍵
Redis 中的 keys 命令用于管理 redis 中的鍵。Redis keys命令使用的語法如下所示:
語法
redis 127.0.0.1:6379> COMMAND KEY_NAME
示例
redis 127.0.0.1:6379> SET yiibai redis
OK
redis 127.0.0.1:6379> DEL yiibai
(integer) 1
在上面的例子中 DEL 是一個(gè)命令,而 yiibai 是一個(gè)鍵。如果鍵被成功刪除,則該命令的輸出將是(整數(shù))1,否則這將是(整數(shù))0;
Redis字符串
Redis 的字符串命令用于管理 redis 的字符串值。Redis 的字符串命令語法的使用如下所示:
語法
redis 127.0.0.1:6379> COMMAND KEY_NAME
示例
redis 127.0.0.1:6379> SET yiibai redis
OK
redis 127.0.0.1:6379> GET yiibai
"redis"
在上面示例中 SET 和 GET 是 Redis 的命令,這里 yiibai 就是一個(gè)鍵(key);
Redis哈希
Redis哈希是字符串字段和字符串值之間的映射,所以它是用來表示對(duì)象的一個(gè)完美的數(shù)據(jù)類型,Redis 的哈希值最多可存儲(chǔ)超過4十億字段-值對(duì)。
示例
redis 127.0.0.1:6379> HMSET yiibai name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL yiibai
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
在上面的例子,我們?cè)谠O(shè)置一個(gè)名為 yiibai Redis的哈希的教程詳細(xì)信息(name, description, likes, visitors)。
Redis列表
Redis列表是簡單的字符串列表,通過插入順序排序。您可以在Redis 列表的頭或列表尾添加元素。列表的最大長度為 232 - 1 個(gè)元素(4294967295,每個(gè)列表可有超過四十億個(gè)元素)。
示例
redis 127.0.0.1:6379> LPUSH tutorials redis
(integer) 1
redis 127.0.0.1:6379> LPUSH tutorials mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH tutorials mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE tutorials 0 10
1) "mysql"
2) "mongodb"
3) "redis"
在上面的例子中的三個(gè)值由命令LPUSH 插入到 redis 名稱為 tutorials 的列表。
Redis集合
Redis集合是唯一字符串的無序集合。唯一集合是不允許數(shù)據(jù)有重復(fù)的鍵的。在 Redis 集合中添加,刪除和測試成會(huì)是否存的時(shí)間復(fù)雜度為O(1)(恒定的時(shí)間,無論集合內(nèi)包含元素的數(shù)量)。集合的最大長度為 232 - 1 個(gè)元素(4294967295,每個(gè)集合中超過四十億個(gè)元素)。
示例
redis 127.0.0.1:6379> SADD yiibai redis
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mongodb
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mysql
(integer) 1
redis 127.0.0.1:6379> SADD yiibai mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS yiibai
1) "mysql"
2) "mongodb"
3) "redis"
在上面的例子中的三個(gè)值被 Redis 的命令SADD插入到一個(gè)名為 yiibai 集合。
Redis有序集合
Redis的有序集合類似于 Redis 的集合,但是存儲(chǔ)的值在集合中具有唯一性。另外有序集合的每個(gè)成員都使用分值(score)的東西,這個(gè)分值就是用于將有序集合排序,從分值最小到最大來排序。
在 Redis 有序集合添加,刪除和測試成員的存在的時(shí)間復(fù)雜度為 O(1)(恒定時(shí)間,無論集合內(nèi)包含元素的數(shù)量)。列表的最大長度為 232 - 1 個(gè)元素(4294967295,每個(gè)集合的元素超過四十億)。
示例
redis 127.0.0.1:6379> ZADD yiibai 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD yiibai 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD yiibai 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE yiibai 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
在上面的例子中的三個(gè)值及其分值被 ZADD 命令插入一個(gè)名稱為 yiibai 的 redis 有序集合中
Redis HyperLogLog
Redis HyperLogLog 是用來做基數(shù)統(tǒng)計(jì)的算法,HyperLogLog 的優(yōu)點(diǎn)是,在輸入元素的數(shù)量或者體積非常非常大時(shí),計(jì)算基數(shù)所需的空間總是固定 的、并且是很小的。
在 Redis 里面,每個(gè) HyperLogLog 鍵只需要花費(fèi) 12 KB 內(nèi)存,就可以計(jì)算接近 2^64 個(gè)不同元素的基 數(shù)。這和計(jì)算基數(shù)時(shí),元素越多耗費(fèi)內(nèi)存就越多的集合形成鮮明對(duì)比。但是,因?yàn)?HyperLogLog 只會(huì)根據(jù)輸入元素來計(jì)算基數(shù),而不會(huì)儲(chǔ)存輸入元素本身,所以 HyperLogLog 不能像集合那樣,返回輸入的各個(gè)元素。
示例
下面的例子說明了 HyperLogLog Redis 的工作原理:
redis 127.0.0.1:6379> PFADD tutorials "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT tutorials
(integer) 3
Redis發(fā)布訂閱
Redis訂閱和發(fā)布實(shí)現(xiàn)了通訊系統(tǒng),發(fā)件人(在 Redis 中的術(shù)語稱為發(fā)布者)發(fā)送郵件,而接收器(訂戶)接收它們。信息傳輸?shù)逆溌贩Q為通道。Redis 一個(gè)客戶端可以訂閱任意數(shù)量的通道。
示例
以下舉例說明發(fā)布訂閱用戶如何工作。在下面的例子給出一個(gè)客戶端訂閱的通道命名 redisChat 。
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
現(xiàn)在,兩個(gè)客戶端都在同一個(gè)通道名:redisChat 上發(fā)布消息,上述訂閱客戶端接收消息。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by tutorials point"
Redis事務(wù)
Redis事務(wù)允許一組命令在單一步驟中執(zhí)行。事務(wù)有兩個(gè)屬性,說明如下:
- 在一個(gè)事務(wù)中的所有命令作為單個(gè)獨(dú)立的操作順序執(zhí)行。在Redis事務(wù)中的執(zhí)行過程中而另一客戶機(jī)發(fā)出的請(qǐng)求,這是不可以的;
- Redis事務(wù)是原子的。原子意味著要么所有的命令都執(zhí)行,要么都不執(zhí)行;
示例
Redis 事務(wù)由指令 MULTI 發(fā)起的,之后傳遞需要在事務(wù)中和整個(gè)事務(wù)中,最后由 EXEC 命令執(zhí)行所有命令的列表。
redis 127.0.0.1:6379> MULTI
OK
List of commands here
redis 127.0.0.1:6379> EXEC
示例
下面的例子說明了 Redis 的事務(wù)是如何開始和執(zhí)行。
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET tutorial redis
QUEUED
redis 127.0.0.1:6379> GET tutorial
QUEUED
redis 127.0.0.1:6379> INCR visitors
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "redis"
3) (integer) 1
Redis腳本
Redis 腳本是使用Lua解釋腳本用來評(píng)估(計(jì)算)。從 Redis 2.6.0 版本開始內(nèi)置這個(gè)解釋器。命令 EVAL 用于執(zhí)行 腳本命令。
語法
EVAL命令的基本語法如下:
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
示例
下面的例子說明了 Redis 腳本是如何工作的:
redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
Redis連接
Redis 的連接命令基本上都用于管理 Redis服務(wù)器與客戶端連接。
示例
下面的例子說明了一個(gè)客戶端在Redis服務(wù)器上,如何檢查服務(wù)器是否正在運(yùn)行并驗(yàn)證自己。
redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG
Redis備份
Redis的SAVE命令用于創(chuàng)建當(dāng)前 Redis 數(shù)據(jù)庫的備份。
語法
Redis 的 SAVE 命令的基本語法如下所示:
示例
以下示例顯示了如何在Redis的當(dāng)前數(shù)據(jù)庫中創(chuàng)建備份。
在執(zhí)行此命令之后,將在 redis 目錄中創(chuàng)建一個(gè) dump.rdb 文件。
恢復(fù) Redis 數(shù)據(jù)
要恢復(fù) redis 數(shù)據(jù)只需要要將 Redis 的備份文件(dump.rdb)放到 Redis 的目錄中,并啟動(dòng)服務(wù)器。要了解知道 Redis 目錄在什么位置,可使用 CONFIG 命令,如下所示:
127.0.0.1:6379> CONFIG get dir
1) "dir"
2) "/user/yiibai/redis-2.8.13/src"
在上面的命令命令輸出為 /user/yiibai/redis-2.8.13/src 就是使用的 Redis 目錄,也就是 Redis 的服務(wù)器安裝的目錄。
Bgsave
創(chuàng)建 Redis 的備份也可以使用備用命令 BGSAVE 。此命令將啟動(dòng)備份過程,并在后臺(tái)運(yùn)行此。
示例
127.0.0.1:6379> BGSAVE
Background saving started
Redis安全
Redis 數(shù)據(jù)庫可以配置安全保護(hù)的,所以任何客戶端在連接執(zhí)行命令時(shí)需要進(jìn)行身份驗(yàn)證。為了確保 Redis 的安全,需要在配置文件設(shè)置密碼。
示例
下面給出的例子顯示的步驟是用來確保 Redis 實(shí)例的安全。
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
默認(rèn)情況下此屬性是空的,這意味著此實(shí)例沒有設(shè)置密碼。可以通過執(zhí)行以下命令來修改設(shè)置此屬性
127.0.0.1:6379> CONFIG set requirepass "yiibaipass"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "yiibaipass"
如果客戶端運(yùn)行命令無需驗(yàn)證設(shè)置密碼,那么(錯(cuò)誤)NOAUTH 需要驗(yàn)證。錯(cuò)誤將返回。因此,客戶端需要使用 AUTH 命令來驗(yàn)證自己的身份信息。
語法
AUTH命令的基本語法如下所示:
127.0.0.1:6379> AUTH password
Redis性能測試
Redis的基準(zhǔn)性能測試是通過同時(shí)運(yùn)行 N 個(gè)命令以檢查 Redis 性能的工具。
語法
Redis的基準(zhǔn)測試的基本語法如下所示:
redis-benchmark [option] [option value]
示例
下面給出的示例是通過調(diào)用 100000 個(gè)(次)命令來檢查 Redis。
redis-benchmark -n 100000
PING_INLINE: 141043.72 requests per second
PING_BULK: 142857.14 requests per second
SET: 141442.72 requests per second
GET: 145348.83 requests per second
INCR: 137362.64 requests per second
LPUSH: 145348.83 requests per second
LPOP: 146198.83 requests per second
SADD: 146198.83 requests per second
SPOP: 149253.73 requests per second
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second
LRANGE_100 (first 100 elements): 58411.21 requests per second
LRANGE_300 (first 300 elements): 21195.42 requests per second
LRANGE_500 (first 450 elements): 14539.11 requests per second
LRANGE_600 (first 600 elements): 10504.20 requests per second
MSET (10 keys): 93283.58 requests per second
Redis客戶端連接
如果啟用了Redis 的接受配置監(jiān)聽,客戶端可在TCP端口上與Unix套接字連接。以下操作執(zhí)行后新的客戶端連接被服務(wù)器接受:
- 客戶端套接字在非阻塞狀態(tài),因?yàn)?nbsp;Redis 使用復(fù)用和非阻塞I/O;
- TCP_NODELAY選項(xiàng)設(shè)定以確保不會(huì)在連接時(shí)延遲;
- 創(chuàng)建一個(gè)可讀的文件事件,以便 Redis 能夠盡快收集客戶端查詢作為新的數(shù)據(jù)可被套接字讀??;
客戶端最大連接數(shù)量
在Redis的配置文件(redis.conf)有一個(gè)屬性 maxclients ,它描述了可以連接到 Redis 的客戶的最大數(shù)量。命令的基本語法是:
config get maxclients
1) "maxclients"
2) "10000"
默認(rèn)情況下此屬性設(shè)置為 10000(取決于OS的文件標(biāo)識(shí)符限制最大數(shù)量),但可以修改這個(gè)屬性。
示例
在下面給出的例子我們已經(jīng)設(shè)置客戶端最大連接數(shù)量為 100000,在之后啟動(dòng)服務(wù)器:
redis-server --maxclients 100000
Redis管道
Redis是一個(gè)TCP服務(wù)器,支持請(qǐng)求/響應(yīng)協(xié)議。在 redis 中一個(gè)請(qǐng)求完成以下步驟:
- 客戶端發(fā)送一個(gè)查詢給服務(wù)器,并從套接字中讀取,通常服務(wù)器的響應(yīng)是在一個(gè)封閉的方式;
- 服務(wù)器處理命令并將響應(yīng)返回給客戶端;
管道的含義
管道的基本含義是:客戶端可以發(fā)送多個(gè)請(qǐng)求給服務(wù)器,而不等待全部響應(yīng),最后在單個(gè)步驟中讀取所有響應(yīng)。
示例
要檢查 Redis 管道只需要啟動(dòng) Redis 實(shí)例,并在終端輸入以下命令。
$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379
+PONG
+OK
redis
:1
:2
:3
在上面的例子所示,了解使用 PING 命令連接 Redis,之后我們?cè)?nbsp;Redis 設(shè)定一個(gè)名為 tutorial 字符串值,之后拿到這個(gè)鍵對(duì)應(yīng)的值并增加訪問人數(shù)的三倍。在結(jié)果中,我們可以看到所有的命令都提交給 Redis 一次,Redis是給單步輸出所有命令。
通道的好處
這種技術(shù)的好處是顯著提高協(xié)議的性能。管道localhost 獲得至少達(dá)到百倍的網(wǎng)絡(luò)連接速度。
Redis分區(qū)
分區(qū)是將數(shù)據(jù)分割成多個(gè) Redis 實(shí)例,使每個(gè)實(shí)例將只包含鍵子集的過程。
分區(qū)的好處
- 它允許更大的數(shù)據(jù)庫,使用多臺(tái)計(jì)算機(jī)的內(nèi)存總和。如果不分區(qū),只是一臺(tái)計(jì)算機(jī)有限的內(nèi)存可以支持的數(shù)據(jù)存儲(chǔ);
- 它允許按比例在多內(nèi)核和多個(gè)計(jì)算機(jī)計(jì)算,以及網(wǎng)絡(luò)帶寬向多臺(tái)計(jì)算機(jī)和網(wǎng)絡(luò)適配器;
分區(qū)的劣勢
- 涉及多個(gè)鍵的操作通常不支持。例如,如果它們被存儲(chǔ)在被映射到不同的 Redis 實(shí)例鍵,則不能在兩個(gè)集合之間執(zhí)行交集;
- 涉及多個(gè)鍵時(shí),Redis事務(wù)無法使用;
- 分區(qū)粒度是一個(gè)鍵,所以它不可能使用一個(gè)鍵和一個(gè)非常大的有序集合分享一個(gè)數(shù)據(jù)集;
- 當(dāng)使用分區(qū),數(shù)據(jù)處理比較復(fù)雜,比如要處理多個(gè)RDB/AOF文件,使數(shù)據(jù)備份需要從多個(gè)實(shí)例和主機(jī)聚集持久性文件;
- 添加和刪除的容量可能會(huì)很復(fù)雜。例如:Redis的Cluster支持?jǐn)?shù)據(jù)在運(yùn)行時(shí)添加和刪除節(jié)點(diǎn)是透明平衡的,但其他系統(tǒng),如客戶端的分區(qū)和代理服務(wù)器不支持此功能
分區(qū)類型
Redis 提供有兩種類型的分區(qū)。假設(shè)我們有四個(gè) redis 實(shí)例:R0,R1,R2,R3,分別表示用戶用戶如:user:1, user:2, ...等等
范圍分區(qū)
范圍分區(qū)被映射對(duì)象指定 Redis 實(shí)例在一個(gè)范圍內(nèi)完成。
在我們的例子中,用戶從ID為 0 至 ID10000 將進(jìn)入實(shí)例 R0,而用戶 ID 10001到ID 20000 將進(jìn)入實(shí)例 R1 等等。
散列分區(qū)
在這種類型的分區(qū)是一個(gè)散列函數(shù)(例如,模數(shù)函數(shù))用于將鍵轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù),然后存儲(chǔ)在不同的 redis 實(shí)例
您可能感興趣的文章:- Redis有序集合類型的操作_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Redis入門教程_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 詳解Redis命令和鍵_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis集群搭建_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis快照模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis列表類型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis發(fā)布訂閱_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis集合類型_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- redis安裝和配置_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 了解redis中RDB結(jié)構(gòu)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理