一、什么是redis
redis是一個(gè)開(kāi)源的、使用C語(yǔ)言編寫(xiě)的、支持網(wǎng)絡(luò)交互的、可基于內(nèi)存也可持久化的Key-Value數(shù)據(jù)庫(kù)。
二、優(yōu)點(diǎn)
性能極高 – Redis能讀的速度是110000次/s,寫(xiě)的速度是81000次/s 。
豐富的數(shù)據(jù)類型 – Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets
數(shù)據(jù)類型操作。
原子 – Redis的所有操作都是原子性的,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。
Redis是提供單線程方式提供服務(wù)
Redis支持主從復(fù)制功能
三、使用場(chǎng)景
緩存——熱數(shù)據(jù)
分布式鎖與單線程機(jī)制
隊(duì)列
排行榜
四、redis相比memcached有哪些優(yōu)勢(shì)?
memcached所有的值均是簡(jiǎn)單的字符串,redis作為其替代者,支持更為豐富的數(shù)據(jù)類型
redis的速度比memcached快很多
redis可以持久化其數(shù)據(jù)
五、mac安裝redis
? ? ? 1. 官網(wǎng)下載:https://redis.io/download

2.解壓安裝,執(zhí)行命令
? ? ? ? tar xzf redis-5.0.3.tar.gz? ? cd redis-5.0.3? ? make
3.啟動(dòng)服務(wù)器
? ? ? ? 執(zhí)行命令:src/redis-server
4.啟動(dòng)客戶端
? ? ? ? 執(zhí)行命令:src/redis-cli
5.保存并獲取緩存數(shù)據(jù)

六、redis支持類型基本操作
string類型
功能說(shuō)明:字符串?dāng)?shù)據(jù)類型的相關(guān)命令用于管理 redis 字符串值
命令描述備注SET key value設(shè)置指定 key 的值
GET key獲取指定 key 的值。
SETNX key value只有在 key 不存在時(shí)設(shè)置 key 的值。
STRLEN key返回 key 所儲(chǔ)存的字符串值的長(zhǎng)度。

2.Redis 哈希(Hash)
功能說(shuō)明:Redis hash 是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象。Redis 中每個(gè) hash 可以存儲(chǔ) 232 - 1 鍵值對(duì)(40多億)。
命令描述備注HMSET key field1 value1 [field2 value2 ]同時(shí)將多個(gè) field-value (域-值)對(duì)設(shè)置到哈希表 key 中。
HMGET key field1 [field2]獲取所有給定字段的值
HGETALL key獲取在哈希表中指定 key 的所有字段和值
HGET key field獲取存儲(chǔ)在哈希表中指定字段的值。

3.Redis 列表(List)
功能說(shuō)明:Redis列表是簡(jiǎn)單的字符串列表,按照插入順序排序。你可以添加一個(gè)元素到列表 的頭部(左邊)或者尾部(右邊)一個(gè)列表最多可以包含 232 - 1 個(gè)元素 (4294967295, 每個(gè)列表超過(guò)40億個(gè)元素)。
命令描述備注LPUSH key value1 [value2]將一個(gè)或多個(gè)值插入到列表頭部
LRANGE key start stop獲取列表指定范圍內(nèi)的元素
LLEN key獲取列表長(zhǎng)度

4.Redis 集合(Set)
功能說(shuō)明:Redis 的 Set 是 String 類型的無(wú)序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復(fù)的數(shù)據(jù)。
命令描述備注SADD key member1 [member2]向集合添加一個(gè)或多個(gè)成員
SCARD key獲取集合的成員數(shù)
SMEMBERS key返回集合中的所有成員

5.Redis 有序集合(sorted set)
功能說(shuō)明:Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復(fù)的成員。
不同的是每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的分?jǐn)?shù)。redis正是通過(guò)分?jǐn)?shù)來(lái)為集合中的成員進(jìn)行從小到大? .? ? ? 的排序。
命令描述備注ZADD key score1 member1 [score2 member2]向有序集合添加一個(gè)或多個(gè)成員,或者更新已存在成員的分?jǐn)?shù)
ZCARD key獲取有序集合的成員數(shù)

七、主從模式搭建

1.準(zhǔn)備三個(gè)redis服務(wù),依次命名文件夾子master,slave1,slave2.
2.配置文件(redis.conf),我們master使用6000端口。
master配置修改端口:
port 6000
requirepass 123456
slave1修改配置:
port 6001
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
slave2修改配置:
port 6002
slaveof 127.0.0.1 6000
masterauth 123456
requirepass 123456
3.啟動(dòng)
? ? 啟動(dòng)主機(jī)
? ? redis-server redis.conf
? ? 啟動(dòng)從機(jī):
? ? redis-server redis1.conf? ? redis-server redis2.conf
4.驗(yàn)證
master:
[root@localhost master]# redis-cli -p 6000
127.0.0.1:6000> auth 123456
OK
127.0.0.1:6000> set test chenqm
OK
slave1:
[root@localhost slave2]# redis-cli -p 6001
127.0.0.1:6001> auth 123456
OK
127.0.0.1:6001> get test
"chenqm"
slave2:
[root@localhost slave2]# redis-cli -p 6002
127.0.0.1:6002> auth 123456
OK
127.0.0.1:6002> get test
歡迎大家關(guān)注我們的公眾號(hào),一起學(xué)習(xí)、探討