Redis簡(jiǎn)介
Redis是一個(gè)開源(BSD許可),內(nèi)存存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)服務(wù)器,可用作數(shù)據(jù)庫(kù),高速緩存和消息隊(duì)列代理。
它支持字符串、哈希表、列表、集合、有序集合,位圖,hyperloglogs等數(shù)據(jù)類型。
內(nèi)置復(fù)制、Lua腳本、LRU收回、事務(wù)以及不同級(jí)別磁盤持久化功能,同時(shí)通過(guò)Redis Sentinel提供高可用,通過(guò)Redis Cluster提供自動(dòng)分區(qū)。
簡(jiǎn)言之,Redis是一種面向“鍵/值”對(duì)數(shù)據(jù)類型的內(nèi)存數(shù)據(jù)庫(kù),可以滿足我們對(duì)海量數(shù)據(jù)的快速讀寫需求。
Redis是一款NoSQL產(chǎn)品。
官網(wǎng):http://www.redis.io
或者:http://redis.cn/
Redis的特點(diǎn)
Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加載進(jìn)行使用。
Redis不僅僅支持簡(jiǎn)單的k-v類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
Redis支持?jǐn)?shù)據(jù)的備份,即master-slave主從模式的數(shù)據(jù)備份。
Redis的優(yōu)勢(shì)
性能極高——Redis讀的速度為11w/s,寫的速度為8.1w/s。
豐富的數(shù)據(jù)類型——Redis支持二進(jìn)制案例的Strings,Lists,Hashes,Sets即Ordered Sets數(shù)據(jù)類型操作。
原子性——Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作合并后的原子性執(zhí)行。
豐富的特性——Redis還支持public/subscribe,通知,key過(guò)期等特性。
Redis應(yīng)用
應(yīng)用在高并發(fā)和實(shí)時(shí)請(qǐng)求的場(chǎng)景,eg新浪微博
hash:關(guān)注列表,粉絲列表
string:微博數(shù),粉絲數(shù)
(避免使用select count(*) from...)
sorted set:
TopN,熱門微博
還有g(shù)ithub,
stackoverflow也
用到了redis
Redis安裝配置
Redis安裝
windows下直接解壓即可使用,主要說(shuō)明Linux下的安裝方式 :
解壓:
tar -zxvf soft/redis-3.2.0.tar.gz -C app/
重命名:
mv app/redis-3.2.0/ app/redis
編譯:
make
安裝:
make install PREFIX=/home/uplooking/app/redis
Redis配置
初始配置
修個(gè)redis.conf中的配置項(xiàng)
bind uplooking01
daemonize yes(后臺(tái)運(yùn)行)
logfile /opt/redis-3.2.0/logs/redis.log(日志文件,目錄必須存在)
啟動(dòng)服務(wù)
make完成之后,在redis-3.2.0/src目錄下會(huì)出現(xiàn)編譯后的redis服務(wù)器程序redis-server,還有用于測(cè)試的客戶端程序redis-cli。
redis-3.2.0]$ src/redis-server redis.conf
當(dāng)然,如果再執(zhí)行了make install則會(huì)在指定安裝目錄下生成一個(gè)bin目錄,同時(shí)也會(huì)有相關(guān)的命令用于操作Redis.
啟動(dòng)客戶端
redis-3.2.0]$ src/redis-cli -h localhost -p 6379
關(guān)閉服務(wù)
ps -ef | grep redis
找到進(jìn)程id后直接kill -9就可以了。
Redis配置查看
Redis的配置文件位于Redis的安裝目錄之下,文件名為redis.conf??梢酝ㄟ^(guò)config命令來(lái)查看或設(shè)置配置項(xiàng)。
查看
語(yǔ)法,Redis config命令格式如下:
redis localost:6379> config get config_set_name
eg: redis localost:6379> config get loglevel
1) "loglevel"
2) "notice"
使用*號(hào)獲取所有配置項(xiàng):redis localost:6379> config get *
編輯
可以通過(guò)修改redis.conf文件或使用config set命令來(lái)修改配置
基本語(yǔ)法:
redis localost:6379> config set conf_setting_name new_value
eg: redis localost:6379> config set loglevel "warning"
redis localost:6379> config get loglevel
1) "loglevel"
2) "warning" -->對(duì)當(dāng)前服務(wù)有效,之后當(dāng)服務(wù)重啟之后,才會(huì)失效
Redis操作
string(字符串)
string是redis最基本的類型,你可以理解成與memcached一模一樣的類型,一個(gè)key對(duì)應(yīng)一個(gè)value。
string類型是二進(jìn)制安全的。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對(duì)象 。
string類型是Redis最基本的數(shù)據(jù)類型,一個(gè)鍵最大能存儲(chǔ)512MB。
實(shí)例
redis 127.0.0.1:6379> SET name "redis.net.cn"
OK
redis 127.0.0.1:6379> GET name
"redis.net.cn"
在以上實(shí)例中我們使用了Redis的SET和GET命令。鍵為name,對(duì)應(yīng)的值為redis.net.cn。
注意:一個(gè)鍵最大能存儲(chǔ)512MB。
常見的string操作命令如下:
set key value 設(shè)置指定key的值(會(huì)覆蓋無(wú)視數(shù)據(jù)類型)
set name yaohuiying
get key 獲取指定key的值
get name
getrange key start end 返回key中字符串值的子字符
getrange name 1 4
注意:字符串索引從0開始,獲取索引片段[start, end],包頭包尾
getset key value 將給定key的值設(shè)為value,并返回key的舊值(old value)
getset name liuxiangqian
返回值為yaohuiying
mget key1 [key2..] 獲取所有(一個(gè)或多個(gè))給定key的值
mget name name1
setex key seconds value 將值value關(guān)聯(lián)到key,并將key的過(guò)期時(shí)間設(shè)為seconds(以秒為單位)
setnx key value 只有在key不存在時(shí)設(shè)置key的值
作用同set,唯一和set的區(qū)別在于,只有當(dāng)key不存在的時(shí)候,才進(jìn)行設(shè)置,
而key存在,無(wú)法完成覆蓋
setrange key offset value 用value參數(shù)覆寫給定key所儲(chǔ)存的字符串值,從偏移量offset開始
對(duì)key的原先的value進(jìn)行局部覆蓋,從offset偏移量開始,
value有多長(zhǎng),就覆蓋多長(zhǎng)
strlen key 返回key所儲(chǔ)存的字符串值的長(zhǎng)度
mset key value [key value ...] 同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì)
MSETNX key value [key value ...] 同時(shí)設(shè)置一個(gè)或多個(gè)key-value對(duì),當(dāng)且僅當(dāng)所有給定key都不存在
psetex key milliseconds value 這個(gè)命令和SETEX命令相似,但它以毫秒為單位設(shè)置key的生存時(shí)間,
而不是像SETEX命令那樣,以秒為單位
incr key 將key中對(duì)應(yīng)儲(chǔ)存的數(shù)字值增一
對(duì)key對(duì)應(yīng)的value進(jìn)行+1,但是value必須是數(shù)字類型的字符串
INCRBY key increment 將key所儲(chǔ)存的值加上給定的增量值(increment)
之定義的步長(zhǎng)
incrbyfloat key increment 將key所儲(chǔ)存的值加上給定的浮點(diǎn)增量值(increment)
decr key 將key中儲(chǔ)存的數(shù)字值減一
decrby key decrement key 所儲(chǔ)存的值減去給定的減量值(decrement)
append key value 如果key已經(jīng)存在并且是一個(gè)字符串,
APPEND命令將value追加到key原來(lái)的值的末尾
hash(哈希)
Redis hash 是一個(gè)鍵值對(duì)集合。Redis hash是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象。
實(shí)例
redis 127.0.0.1:6379> HMSET w3ckey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL w3ckey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
以上實(shí)例中 hash 數(shù)據(jù)類型存儲(chǔ)了一些描述信息(name,description, likes, visitors)到hash的w3ckey中。 使用hgetall 獲取所有的內(nèi)容。
每個(gè)hash可以存儲(chǔ)232-1鍵值對(duì)(40多億)。
常用命令操作如下:
hexists key field 查看hash表key中,指定字段是否存在
0表示沒(méi)有,1表示有
hget key field 獲取hash表中指定字段的值
hgetall key 獲取所有的字段和值
hincrby key field increment 為指定字段的整數(shù)值加上增量increment
hincrbyfloat key field increment 為指定字段的浮點(diǎn)值加上增量increment
hkeys key 獲取所有的字段
hlen key 獲取key的字段的數(shù)量
hdel key field2 [field2] 刪除一個(gè)或多個(gè)哈是表字段
hmget key field1 [field2] 獲取所有給定字段的值
hmset key f1 v1 [f2 v2] 同時(shí)將多個(gè)file-value設(shè)置到key中
hset key field value 將哈希表key的field設(shè)置為value
hsetnx key field value 當(dāng)在field不存在時(shí),設(shè)置相關(guān)字段的值
hvals key 獲取所有的值
hscan key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的鍵值對(duì)
list(列表)
Redis列表是簡(jiǎn)單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表的頭部(左邊)或者尾部(右邊)。
實(shí)例
redis 127.0.0.1:6379> lpush redis.net.cn redis
(integer) 1
redis 127.0.0.1:6379> lpush redis.net.cn mongodb
(integer) 2
redis 127.0.0.1:6379> lpush redis.net.cn rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange redis.net.cn 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
redis 127.0.0.1:6379>
列表最多可存儲(chǔ) 232-1元素 (4294967295, 每個(gè)列表可存儲(chǔ)40多億)。
常用操作命令如下:
注意:關(guān)于list的操作,可以分為從左邊操作,也可以從右邊進(jìn)行操作
l--->left(頭部),r---->right(尾部)
blpop key1 [key2 ] timeout 移除并獲取列表中的第一個(gè)元素,如果沒(méi)有會(huì)阻塞列表直到超時(shí)【單位是秒s】
或發(fā)現(xiàn)可彈出元素為止
簡(jiǎn)言之就是刪除key1 key2.。。中的元素,如果沒(méi)有元素則阻塞,結(jié)束條件為
要么時(shí)間超過(guò)了timeout;要么發(fā)現(xiàn)有新的元素進(jìn)來(lái)
brpop key1 [key2 ] timeout 移除并獲取列表中的最后一個(gè)元素,如果沒(méi)有會(huì)阻塞列表直到超時(shí)或發(fā)現(xiàn)可彈出
元素為止
同blpop,不同在于刪除元素的方向不一致
brpoplpush source destination timeout 從列表中彈出一個(gè)值,將彈出的元素插入到另外一個(gè)列表中并返回
它,如果沒(méi)有元素會(huì)阻塞列表知道等待超時(shí)或發(fā)現(xiàn)可彈出元素為止
uplooking01:6379> brpoplpush season season1 100
"spring"
(7.59s)
lindex key index 通過(guò)索引獲取列表中的元素
注意一個(gè):
lindex key -1獲取的是最后一個(gè)元素
linsert key before|after pivot value 在列表的元素前或后插入元素
uplooking01:6379> lrange season 0 -1
1) "winter"
2) "autumn"
3) "summer"
uplooking01:6379> linsert season after summer spring
(integer) 4
uplooking01:6379> lrange season 0 -1
1) "winter"
2) "autumn"
3) "summer"
4) "spring"
llen key 獲取列表長(zhǎng)度,列表大小
lpop key 移出并獲取列表的第一個(gè)元素
lpush key value1 [value2] 將一個(gè)或多個(gè)值插入到列表頭部
lpushx key value 將一個(gè)或多個(gè)值插入到已存在的列表頭部
lrange key start stop 獲取列表指定返回內(nèi)的元素
[start, stop]
如果要出去lrange中的所有的元素的話
lrange key 0 -1
lrem key count value 移出列表元素
count > 0: 從頭往尾移除值為 value 的元素,1時(shí),表示移除1個(gè)元素
count 0: 從尾往頭移除值為 value 的元素,-2時(shí),表示移除2個(gè)元素
count = 0: 移除所有值為 value 的元素。
lset key index value 通過(guò)索引設(shè)置列表元素的值(list.set(i, value))
需要大家注意的是一個(gè)特殊的索引-1,表示最后一個(gè)元素
ltrim key start stop 對(duì)一個(gè)列表進(jìn)行修剪(trim),也就是說(shuō),讓列表只保留指定區(qū)間內(nèi)的元素,
刪除其它元素
[start, stop]
uplooking01:6379> lrange season 0 -1
1) "winter"
2) "autumn"
3) "summer"
4) "spring"
uplooking01:6379> ltrim season 1 2
OK
uplooking01:6379> lrange season 0 -1
1) "autumn"
2) "summer"
rpop key 移出并獲取列表最后一個(gè)元素
rpoplpush source destination 移出列表的最后一個(gè)元素,并將該元素添加到另一列表并返回
rpush key value1 [value2] 在列表中添加一個(gè)或多個(gè)值
rpushx key value 為已存在的列表添加值
set(集合)
Redis的Set是string類型的無(wú)序集合。
集合是通過(guò)哈希表實(shí)現(xiàn)的,所以添加,刪除,查找的復(fù)雜度都是O(1)。
sadd命令
添加一個(gè)string元素到,key對(duì)應(yīng)的set集合中,成功返回1,如果元素已經(jīng)存在集合中返回0,key對(duì)應(yīng)的set不存在返回錯(cuò)誤。
sadd key member
實(shí)例
redis 127.0.0.1:6379> sadd redis.net.cn redis
(integer) 1
redis 127.0.0.1:6379> sadd redis.net.cn mongodb
(integer) 1
redis 127.0.0.1:6379> sadd redis.net.cn rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd redis.net.cn rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers redis.net.cn
1) "rabitmq"
2) "mongodb"
3) "redis"
注意:以上實(shí)例中 rabitmq 添加了兩次,但根據(jù)集合內(nèi)元素的唯一性,第二次插入的元素將被忽略。
集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個(gè)集合可存儲(chǔ)40多億個(gè)成員)。
常用操作命令如下:
sadd key member1 [member2] 向集合添加一個(gè)或多個(gè)成員
scard key 獲取集合的成員數(shù)(size)
sdiff key1 [key2] 返回給定所有集合的差集
集合A={1, 2, 3, 4, 5} 集合B={2, 3, 6, 8}
A∩B = {2, 3}
A∪B = {1, 2, 3, 4, 5, 6, 8}
A-B(差集) = {1, 4, 5, 6, 8}
{1, 4, 5}√
uplooking01:6379> sdiff A B
1) "1"
2) "4"
3) "5"
sdiffstore dest key1 [key2] 返回并保存給定集合差集保存到dest中
uplooking01:6379> sdiffstore tmp A B
(integer) 3
uplooking01:6379> smembers tmp
1) "1"
2) "4"
3) "5"
sinter key1 [key2] 返回給定集合的交集
uplooking01:6379> sinter A B
1) "2"
2) "3"
sinterstore dest key1 [key2] 返回并保存給定集合的交集到dest中
sismember key member 判斷member元素是否是集合key的成員
uplooking01:6379> sismember A 3
(integer) 1
uplooking01:6379
smembers key 返回集合中所有成員
smove src dest member 將member元素從src移動(dòng)到dest中
spop key 移除并返回集合中的一個(gè)隨機(jī)元素
srandmember key [count] 返回集合中一個(gè)或多個(gè)隨機(jī)數(shù)
隨機(jī)返回集合key中的count個(gè)元素,沒(méi)有count,返回1個(gè)
uplooking01:6379> srandmember A
"1"
uplooking01:6379> srandmember A 2
1) "3"
2) "4"
srem key member1 [member2] 移除集合中一個(gè)或多個(gè)成員
sunion key1 [key2] 返回所有給定集合的并集---就是數(shù)學(xué)中的并集的概念
uplooking01:6379> sunion A B
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "8"
sunionstore dest key1 [key2] 返回并保存給定集合的并集到dest
sscan key cursor [match pattern] [count count] 迭代集合中的元素
zset(有序集合)
Redis zset和set一樣也是string類型元素的集合,且不允許重復(fù)的成員。不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)。redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大的排序。
zset的成員是唯一的,但分?jǐn)?shù)(score)卻可以重復(fù)。
zadd命令 添加元素到集合,元素在集合中存在則更新對(duì)應(yīng)score
zadd key score member
實(shí)例
redis 127.0.0.1:6379> zadd redis.net.cn 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd redis.net.cn 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd redis.net.cn 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd redis.net.cn 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE redis.net.cn 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
常用操作命令如下:
zadd key score1 member1 [score2 member2] 想有序集合添加一個(gè)或多個(gè)成員,
或是更新已經(jīng)存在成員的分?jǐn)?shù)
uplooking01:6379> zadd website 0.01 www.uplooking.com
(integer) 1
uplooking01:6379> zadd website 0.05 www.baidu.com
(integer) 1
uplooking01:6379> zadd website 0.1 www.google.com
(integer) 1
uplooking01:6379> zadd website 1 www.taobao.com
(integer) 1
uplooking01:6379> zadd website 0.005 www.jd.com
(integer) 1
zcard key 獲取有序集合的成員數(shù)
uplooking01:6379> zcard website
(integer) 5
zcount key min max 計(jì)算在有序集合中指定區(qū)間分?jǐn)?shù)的成員數(shù)
獲取分?jǐn)?shù)區(qū)間[min, max]中元素
uplooking01:6379> zcount website 0.01 0.1
(integer) 3
zincrby key increment member 有序集合中對(duì)指定成員的分?jǐn)?shù)上增量incr
uplooking01:6379> zincrby website 0.01 www.uplooking.com
"0.02"
zinterstore dest nkeys key [key..] 計(jì)算給定的一個(gè)或多個(gè)有序集的交集并保存在新的有序集合dest中
zlexcount key min max 在有序集合中計(jì)算指定字典區(qū)間內(nèi)成員數(shù)量
需要清楚的是
可以使用-代表,得分最小的元素,使用+代表得分最大的元素
zlexcount key - + 得到就是集合的size
min===>[member1
max===>[member2
得到的元素個(gè)數(shù)就是在區(qū)間[member1, member2]內(nèi)的元素個(gè)數(shù)
redis> ZADD myzset 1 a 2 b 3 c 4 d 5 e 6 f 7 g
(integer) 7
redis> zrange myzset 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "g"
redis> ZLEXCOUNT myzset - +
(integer) 7
redis> ZLEXCOUNT myzset [c +
(integer) 5
redis> ZLEXCOUNT myzset - [c
(integer) 3
redis>
zrange key start stop [withscores] 通過(guò)索引區(qū)間返回有序集合成指定區(qū)間內(nèi)的成員
特殊的一個(gè)寫法zrange key 0 -1返回所有的元素
zrangebylex key min max [limit offset count] 通過(guò)字典區(qū)間返回有序集合的成員
zrangebyscore key min max [withscores] [limit] 通過(guò)分?jǐn)?shù)返回有序集合指定區(qū)間內(nèi)的成員
zrank key member 返回有序集合中指定成員的索引
zrem key member [member ...] 移除有序集合中的一個(gè)或多個(gè)成員
返回1,刪除成功,返回0,沒(méi)有這個(gè)元素
zremrangebylex key min max 移除有序集合中給定的字典區(qū)間的所有成員
zremrangebyrank key start stop 移除key中給定的排名區(qū)間的所有成員
排名就是索引
zremrangebyscore key start stop 移除key中給定的分?jǐn)?shù)區(qū)間的所有成員
分?jǐn)?shù)就是score
zrevrange key start stop [withscores] 返回有序key中指定區(qū)間內(nèi)的成員,通過(guò)索引,分?jǐn)?shù)從高到低
和zrange key start stop反過(guò)來(lái)
zrevrangebysocre key max min [withscores] 返回有序key中指定分?jǐn)?shù)區(qū)間內(nèi)的成員,通過(guò)索引,分?jǐn)?shù)從高到低
zrevrank key memeber 返回key中指定成員的排名,key成員按分?jǐn)?shù)值遞減排序
zscore key member 返回key中member的分?jǐn)?shù)
zunionstore dest numkeys key [key...] 計(jì)算給定的一個(gè)或多個(gè)有序集的并集,并存儲(chǔ)到新的dest中
zscan key cursor [match pattern] [count count] 迭代有序集合中的元素(包括元素成員和元素分值)
uplooking01:6379> zscan website 1
1) "0"
2) 1) "www.jd.com"
2) "0.0050000000000000001"
3) "www.uplooking.com"
4) "0.02"
5) "www.baidu.com"
6) "0.050000000000000003"
7) "www.taobao.com"
8) "1"
Redis常見命令
keys *
列舉出所有的key
type key
獲取對(duì)應(yīng)key的數(shù)據(jù)類型
select [0-15]
切換到某一個(gè)數(shù)據(jù)庫(kù)中
rename oldKey newKey
將oldKey重命名為newKey
終端中屬于密碼的兩種方式:
第一種:
連接的時(shí)候:redis-3.2.0]# src/redis-cli -h uplooking03 -a uplooking
第二中:
登陸之后再輸入密碼:
auth uplooking(密碼)
停止redis服務(wù)的命令:
src/redis-cli -h uplooking01 -p 6379 shutdown
1、鍵值相關(guān)命令
keys * 取出當(dāng)前所有的key
exists name 查看redis是否有name這個(gè)key
del name 刪除key name
expire confirm 100 設(shè)置confirm這個(gè)key100秒過(guò)期
ttl confirm 獲取confirm 這個(gè)key的有效時(shí)長(zhǎng)
select 0 選擇到0數(shù)據(jù)庫(kù) redis默認(rèn)的數(shù)據(jù)庫(kù)是0~15一共16個(gè)數(shù)據(jù)庫(kù)
move confirm 1 將當(dāng)前數(shù)據(jù)庫(kù)中的key移動(dòng)到其他的數(shù)據(jù)庫(kù)中,
persist confirm 移除confirm這個(gè)key的過(guò)期時(shí)間
randomkey 隨機(jī)返回?cái)?shù)據(jù)庫(kù)里面的一個(gè)key
rename key2 key3 重命名key2 為key3
type key2 返回key的數(shù)據(jù)類型
2、服務(wù)器相關(guān)命令
ping PONG返回響應(yīng)是否連接成功
echo 在命令行打印一些內(nèi)容
select 0~15 編號(hào)的數(shù)據(jù)庫(kù)
quit /exit 退出客戶端
dbsize 返回當(dāng)前數(shù)據(jù)庫(kù)中所有key的數(shù)量
info 返回redis的相關(guān)信息
config get dir/* 實(shí)時(shí)傳儲(chǔ)收到的請(qǐng)求
flushdb 刪除當(dāng)前選擇數(shù)據(jù)庫(kù)中的所有key
flushall 刪除所有數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)
您可能感興趣的文章:- SpringBoot結(jié)合Redis哨兵模式的實(shí)現(xiàn)示例
- 基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn)
- Redis Sentinel實(shí)現(xiàn)哨兵模式搭建小結(jié)
- redis命令行查看中文不亂碼的方法(十六進(jìn)制字符串處理)
- 詳解使用Redis SETNX 命令實(shí)現(xiàn)分布式鎖
- redis哨兵常用命令和監(jiān)控示例詳解