【学习记录】macOS的Redis安装及基本使用
【學(xué)習(xí)記錄】macOS的Redis安裝及基本使用
- 一. Redis的安裝與啟動(dòng)
- 二. 簡(jiǎn)單使用
- ① 嘗試插入第一個(gè)key-value
- ② Redis的數(shù)據(jù)類型與基本使用
- 字符串
- 列表
- 字典(哈希表)
- 集合
- 有序集合
- 三. 雜亂無章的筆記
一. Redis的安裝與啟動(dòng)
打開終端,輸入以下命令即可安裝
brew install redis安裝成功后, 輸入以下命令通過brew來啟動(dòng)Redis
brew services start redis接下來啟動(dòng)服務(wù)端
redis-cli二. 簡(jiǎn)單使用
更多命令可到菜鳥教程里查詢。這個(gè)模塊只是對(duì)這些結(jié)構(gòu)的簡(jiǎn)單描述。
① 嘗試插入第一個(gè)key-value
插入鍵值對(duì) 114514 - tiansuo
set 114514 tiansuo而后通過鍵值114514即可獲得對(duì)應(yīng)值tiansuo
get 114514② Redis的數(shù)據(jù)類型與基本使用
Redis中有五種數(shù)據(jù)類型:
- 字符串 String
- 列表 List
- 字典 Hash
- 集合 Set
- 有序集合 Sorted Set
字符串
感覺和C++,JAVA等語(yǔ)言里的String大同小異。
下列舉兩個(gè)命令例子
- append 命令:拓展字符串 (append key value)
輸入這行命令后,鍵值對(duì)更新成 114514 - tiansuohaoer
- type命令:獲取鍵的數(shù)據(jù)類型的值
列表
感覺像是數(shù)組和棧、隊(duì)列的縫合怪。
下標(biāo)從0開始,有如下功能:
- 添加列表:lpush / rpush listName value, l / r分別代表從左/右開始添加元素
- 彈出元素:lpop / rpop
- 由下標(biāo)獲取值:lindex key index
- 獲取范圍下標(biāo)內(nèi)的所有值:lrange key start stop 如 lrange listOne 0 3
字典(哈希表)
可以由以下這個(gè)初始化流程來了解字典的結(jié)構(gòu)
hset person name jack // 新建一個(gè)名為person的字典,其中一個(gè)鍵值name對(duì)應(yīng)值jack hset person age 20 // 在字典person中,新增一個(gè)鍵值age對(duì)應(yīng)值20 hgetall person // 獲取當(dāng)前字典person的所有鍵值與值 hkeys person // 獲取當(dāng)前字典person的所有鍵值 hvals person // 獲取當(dāng)前字典person的所有值集合
很熟悉的一個(gè)結(jié)構(gòu)了, 無非就是集合的交并差。
有序集合
增加一個(gè)Score屬性,用來對(duì)集合成員進(jìn)行一個(gè)排序。
集合成員唯一,但是分?jǐn)?shù)不唯一,即不同成員可以分?jǐn)?shù)相同。
三. 雜亂無章的筆記
筆記
客戶端啟動(dòng):本地:redis-cil 遠(yuǎn)程:redis-cli -h host -p port -a password
eg: redis-cli -h 127.0.0.1 -p 6379 -a “mypass”
訂閱:SUBSCRIBE name
發(fā)送:PUBLISH name “message”
事務(wù):
Redis 事務(wù)可以一次執(zhí)行多個(gè)命令, 并且?guī)в幸韵氯齻€(gè)重要的保證:
- 批量操作在發(fā)送 EXEC 命令前被放入隊(duì)列緩存。
- 收到 EXEC 命令后進(jìn)入事務(wù)執(zhí)行,事務(wù)中任意命令執(zhí)行失敗,其余的命令依然被執(zhí)行。
- 在事務(wù)執(zhí)行過程,其他客戶端提交的命令請(qǐng)求不會(huì)插入到事務(wù)執(zhí)行命令序列中。
一個(gè)事務(wù)從開始到執(zhí)行會(huì)經(jīng)歷以下三個(gè)階段:
- 開始事務(wù)。
- 命令入隊(duì)。
- 執(zhí)行事務(wù)。
Redis 發(fā)布訂閱:消息無法持久化,如果出現(xiàn)網(wǎng)絡(luò)斷開、Redis 宕機(jī)等,消息就會(huì)被丟棄。
而 Redis Stream 提供了消息的持久化和主備復(fù)制功能
NoSql:解決高并發(fā)、高可用、高可擴(kuò)展,大數(shù)據(jù)存儲(chǔ)等一系列問題而產(chǎn)生的數(shù)據(jù)庫(kù)解決方案.
叫非關(guān)系型數(shù)據(jù)庫(kù),它的全名Not only sql。它不能替代關(guān)系型數(shù)據(jù)庫(kù),只能作為關(guān)系型數(shù)據(jù)庫(kù)的一個(gè)良好補(bǔ)充。
分類:
-
鍵值(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù) :典型應(yīng)用: 內(nèi)容緩存,主要用于處理大量數(shù)據(jù)的高訪問負(fù)載。 數(shù)據(jù)模型: 一系列鍵值對(duì)
優(yōu)勢(shì): 快速查詢 劣勢(shì): 存儲(chǔ)的數(shù)據(jù)缺少結(jié)構(gòu)化
-
列存儲(chǔ)數(shù)據(jù)庫(kù) 典型應(yīng)用:分布式的文件系統(tǒng)
-
文檔型數(shù)據(jù)庫(kù),比如 MongoDB ,典型應(yīng)用:Web應(yīng)用(與Key-Value類似,Value是結(jié)構(gòu)化的)
-
圖形(Graph)數(shù)據(jù)庫(kù) ,圖結(jié)構(gòu)
Redis 應(yīng)用場(chǎng)景:緩存(數(shù)據(jù)查詢、短連接、新聞內(nèi)容、商品內(nèi)容等等)。(最多使用) 分布式集群架構(gòu)中的session分離。 聊天室的在線好友列表。 任務(wù)隊(duì)列。(秒殺、搶購(gòu)、12306等等) 應(yīng)用排行榜。 網(wǎng)站訪問統(tǒng)計(jì)。 數(shù)據(jù)過期處理(可以精確到毫秒)
Redis 持久化方案:
-
Rdb 方式: Redis 默認(rèn)的方式,redis 通過快照方式將數(shù)據(jù)持久化到磁盤中。
一旦redis非法關(guān)閉,那么會(huì)丟失最后一次持久化之后的數(shù)據(jù)。
-
Aof 方式:操作一次 redis 數(shù)據(jù)庫(kù),則將操作的記錄存儲(chǔ)到 aof 持久化文件中。
Redis 主從復(fù)制:持久化保證了即使redis服務(wù)重啟也不會(huì)丟失數(shù)據(jù),因?yàn)閞edis服務(wù)重啟后會(huì)將硬盤上持久化的數(shù)據(jù)恢復(fù)到內(nèi)存中。
但是當(dāng)redis服務(wù)器的硬盤損壞了可能會(huì)導(dǎo)致數(shù)據(jù)丟失,如果通過redis的主從復(fù)制機(jī)制就可以避免這種單點(diǎn)故障,如下圖:
主redis中的數(shù)據(jù)有兩個(gè)副本(replication)即從redis1和從redis2,即使一臺(tái)redis服務(wù)器宕機(jī)其它兩臺(tái)redis服務(wù)也可以繼續(xù)提供服務(wù)。
主redis中的數(shù)據(jù)和從redis上的數(shù)據(jù)保持實(shí)時(shí)同步,當(dāng)主redis寫入數(shù)據(jù)時(shí)通過主從復(fù)制機(jī)制會(huì)復(fù)制到兩個(gè)從redis服務(wù)上。
只有一個(gè)主redis,可以有多個(gè)從redis。
主從復(fù)制不會(huì)阻塞master,在同步數(shù)據(jù)時(shí),master 可以繼續(xù)處理client 請(qǐng)求
主機(jī)一旦發(fā)生增刪改操作,那么從機(jī)會(huì)將數(shù)據(jù)同步到從機(jī)中. 從機(jī)不能執(zhí)行寫操作
一個(gè)redis可以即是主又是從,如下圖:
總結(jié)
以上是生活随笔為你收集整理的【学习记录】macOS的Redis安装及基本使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: adam算法效果差原因_干货|快来get
- 下一篇: 计算机专业大学排名_U.S.News全美