項(xiàng)目六 鍵值數(shù)據(jù)庫Redis_第1頁
項(xiàng)目六 鍵值數(shù)據(jù)庫Redis_第2頁
項(xiàng)目六 鍵值數(shù)據(jù)庫Redis_第3頁
項(xiàng)目六 鍵值數(shù)據(jù)庫Redis_第4頁
項(xiàng)目六 鍵值數(shù)據(jù)庫Redis_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大數(shù)據(jù)存儲技術(shù)與應(yīng)用案例所有教學(xué)資源,我們給;所有復(fù)雜操作,我們做;圖書附贈,永久免費(fèi),只為老師用書更方便課件教案微課掃碼題庫建課互評考試平臺

學(xué)習(xí)工具0102030405申請簽到功能建課、建班(無需操作,技術(shù)專員負(fù)責(zé)搭建)系統(tǒng)自動記錄考勤分創(chuàng)建簽到學(xué)生掃碼簽到掃碼申請免費(fèi)開通簽到功能→動態(tài)二維碼,防作弊

考勤記錄自動統(tǒng)計(jì),匯入學(xué)生總成績課堂簽到項(xiàng)目一大數(shù)據(jù)存儲入門項(xiàng)目三列式數(shù)據(jù)庫HBase項(xiàng)目二數(shù)據(jù)倉庫Hive項(xiàng)目四文檔數(shù)據(jù)庫MongoDB項(xiàng)目五圖數(shù)據(jù)庫Neo4j項(xiàng)目六鍵值數(shù)據(jù)庫Redis項(xiàng)目七NewSQL數(shù)據(jù)庫CockroachDB鍵值數(shù)據(jù)庫Redis項(xiàng)目六

任務(wù)一采用單機(jī)模式部署Redis

任務(wù)二操作社交媒體數(shù)據(jù)鍵值數(shù)據(jù)庫是一種以鍵值對形式存儲數(shù)據(jù)的簡單數(shù)據(jù)庫,在快速處理數(shù)據(jù)和實(shí)時應(yīng)用開發(fā)中發(fā)揮著重要作用。Redis是一個經(jīng)典的鍵值數(shù)據(jù)庫,它不僅可以存儲不同類型的鍵值數(shù)據(jù),還提供了豐富的數(shù)據(jù)操作命令和持久化機(jī)制,適用于緩存系統(tǒng)、消息隊(duì)列和實(shí)時分析等場景。本項(xiàng)目將介紹鍵值數(shù)據(jù)庫和Redis的相關(guān)知識,采用單機(jī)模式部署Redis,操作社交媒體數(shù)據(jù)。項(xiàng)目導(dǎo)讀項(xiàng)目目標(biāo)了解鍵值數(shù)據(jù)庫的特點(diǎn)和應(yīng)用場景。掌握Redis的存儲結(jié)構(gòu)和數(shù)據(jù)類型。掌握Redis中鍵、字符串、哈希表、列表、集合和有序集合的基本操作。掌握Redis持久化的方法。能采用單機(jī)模式部署Redis。能使用Redis操作不同類型的數(shù)據(jù),靈活存儲和管理大規(guī)模數(shù)據(jù)。能實(shí)現(xiàn)Redis持久化,長期存儲業(yè)務(wù)中的數(shù)據(jù)。培養(yǎng)自主學(xué)習(xí)意識,提升實(shí)踐操作能力。掌握創(chuàng)新方法,培養(yǎng)獨(dú)立思考和解決問題的能力。采用單機(jī)模式部署Redis任務(wù)一Redis支持4種部署模式,分別為單機(jī)模式、主從復(fù)制模式、哨兵模式和集群模式。為了方便演示Redis的使用方法,我們采用單機(jī)模式部署Redis。在這種模式下,Redis運(yùn)行在單個節(jié)點(diǎn)上,不用進(jìn)行數(shù)據(jù)分片或復(fù)制。采用單機(jī)模式部署Redis之前,我們先來學(xué)習(xí)一下鍵值數(shù)據(jù)庫的特點(diǎn)和應(yīng)用場景,以及Redis的存儲結(jié)構(gòu)和數(shù)據(jù)類型。任務(wù)準(zhǔn)備問題1:簡述鍵值對的概念。全班學(xué)生以3~5人為一組,各組選出組長。組長組織組員掃碼觀看“鍵值對概述”視頻,討論并回答下列問題。問題2:簡述鍵值對的應(yīng)用場景。鍵值對概述一、鍵值數(shù)據(jù)庫概述

鍵值數(shù)據(jù)庫是一種輕量級的NoSQL數(shù)據(jù)庫,其設(shè)計(jì)和運(yùn)行主要依賴于計(jì)算機(jī)的內(nèi)存,讀寫數(shù)據(jù)的速度非???,常用于快速處理大規(guī)模數(shù)據(jù)。1、鍵值數(shù)據(jù)庫的特點(diǎn)鍵值數(shù)據(jù)庫的特點(diǎn)(1)數(shù)據(jù)存儲結(jié)構(gòu)簡單鍵值數(shù)據(jù)庫中數(shù)據(jù)的存儲結(jié)構(gòu)主要包括鍵和值,不需要設(shè)計(jì)復(fù)雜的數(shù)據(jù)模型,使得數(shù)據(jù)存儲和檢索變得非常直接和高效。(2)高性能鍵值數(shù)據(jù)庫主要基于內(nèi)存存儲數(shù)據(jù),而且不需要復(fù)雜的查詢操作或連接操作,因此大幅縮短了訪問數(shù)據(jù)的時間。(3)高可擴(kuò)展性鍵值數(shù)據(jù)庫易于擴(kuò)展,可以輕松應(yīng)對數(shù)據(jù)量的大幅增長。(4)高靈活性鍵值數(shù)據(jù)庫不依賴于固定的數(shù)據(jù)模型,允許存儲不同的數(shù)據(jù),包括文本、圖片、視頻等。一、鍵值數(shù)據(jù)庫概述2、鍵值數(shù)據(jù)庫的應(yīng)用場景二、Redis的存儲結(jié)構(gòu)Redis是一個開源的、使用C語言編寫的鍵值數(shù)據(jù)庫,它的存儲結(jié)構(gòu)主要包括鍵和值。(1)鍵(key)鍵是一個唯一的標(biāo)識符,用于定位和訪問與之關(guān)聯(lián)的值。用戶可以根據(jù)需要在鍵的左側(cè)加上前綴(prefix),用于組織和管理鍵,如“prefix:key”。(2)值(value)值是與鍵相關(guān)聯(lián)的數(shù)據(jù)或信息,它可以是字符串、哈希、列表、集合和有序集合等類型的數(shù)據(jù)。針對不同類型的數(shù)據(jù),Redis提供了不同的操作命令。三、Redis的數(shù)據(jù)類型Redis鍵值數(shù)值庫主要提供了哪些常用的數(shù)據(jù)結(jié)構(gòu)類型?三、Redis的數(shù)據(jù)類型數(shù)據(jù)類型描述示例String

(字符串)字符串是最基本的數(shù)據(jù)類型,可以存儲數(shù)字、文本、圖片或序列化的對象等數(shù)據(jù)。需要注意的是,字符串的最大容量為512MBkeyvalueHash

(哈希)哈希是多個鍵值對的集合,用于存儲對象。其中,每個對象都是由字段(field)和值組成。哈希的底層是使用哈希表實(shí)現(xiàn)的,因此也常被稱為哈希表keyfield1value1field2value2List

(列表)列表可以有序地存儲多個字符串。列表的底層是使用雙向鏈表實(shí)現(xiàn)的,因此允許在鏈表兩端快速地添加或刪除元素keyvalue1value2Set

(集合)集合可以無序地存儲多個不重復(fù)的字符串元素keymember1member2SortedSet

(有序集合)有序集合類似于集合,不同的是,有序集合的每個元素都有一個分?jǐn)?shù)(score),并根據(jù)分?jǐn)?shù)對元素進(jìn)行排序keyscore1member1score2member2鍵只能是字符串類型,值可以是字符串、哈希、列表、集合和有序集合等多種類型。用戶可以根據(jù)業(yè)務(wù)需求選擇合適的數(shù)據(jù)類型,從而提高數(shù)據(jù)存儲和訪問的效率。任務(wù)實(shí)施

任務(wù)分析首先安裝C語言編譯器gcc;然后安裝Redis;最后啟動Redis服務(wù)器和CLI,驗(yàn)證Redis是否部署成功。

實(shí)施步驟采用單機(jī)模式部署Redis任務(wù)實(shí)施

實(shí)施步驟1、安裝并配置Zookeeper步驟1啟動Master主機(jī)的終端,執(zhí)行如下命令,安裝C語言編譯器gcc。[hadoop@Master~]$sudoyuminstallgcc-c++Redis是使用C語言編寫的,它的運(yùn)行需要C環(huán)境,所以在部署Redis前需要先安裝C語言編譯器gcc。高手點(diǎn)拔步驟2執(zhí)行如下命令,下載Redis安裝文件。[hadoop@Master~]$cd下載[hadoop@Master下載]$wgethttp://download.redis.io/releases/

redis-7.0.9.tar.gz任務(wù)實(shí)施執(zhí)行如下命令,將Redis安裝文件解壓到“/usr/local”目錄中;然后將“redis-7.0.9”目錄重命名為“redis”;最后將該目錄的所有權(quán)限賦予hadoop用戶。步驟3[hadoop@Master下載]$sudotar-zxfredis-7.0.9.tar.gz-C/usr/local[hadoop@Master下載]$cd/usr/local[hadoop@Masterlocal]$sudomvredis-7.0.9redis[hadoop@Masterlocal]$sudochown-Rhadoop./redis執(zhí)行如下命令,編譯文件,生成可執(zhí)行文件redis-server、redis-cli等。[hadoop@Masterlocal]$cdredis[hadoop@Masterredis]$make步驟4任務(wù)實(shí)施執(zhí)行如下命令,打開“.bashrc”配置文件;然后在文件首行添加如下配置信息;最后保存并關(guān)閉配置文件。[hadoop@Masterredis]$sudovim~/.bashrc#配置信息exportPATH=$PATH:/usr/local/redis/src步驟5執(zhí)行如下命令,使配置信息生效。步驟6[hadoop@Masterredis]$source~/.bashrc執(zhí)行如下命令,啟動Redis服務(wù)器。若出現(xiàn)Redis的版本信息,則證明Redis服務(wù)器啟動成功。步驟7[hadoop@Masterredis]$redis-serverRedis服務(wù)器啟動成功的界面任務(wù)實(shí)施在Master主機(jī)上啟動一個新的終端,執(zhí)行如下命令,啟動RedisCLI。若出現(xiàn)“:6379>”提示符,則證明RedisCLI啟動成功。步驟8[hadoop@Master~]$redis-cli--raw執(zhí)行如下語句,退出RedisCLI。步驟9:6379>exit操作社交媒體數(shù)據(jù)任務(wù)二某社交媒體平臺的部分?jǐn)?shù)據(jù)如表所示。用戶名郵箱帖子標(biāo)題帖子內(nèi)容Alicealice@Redis入門教程這是一篇關(guān)于Redis的入門教程……Redis進(jìn)階教程這是一篇關(guān)于Redis的進(jìn)階教程……Bobbob@Redis高級特性這篇文章介紹了Redis的一些高級特性……操作社交媒體數(shù)據(jù)任務(wù)二社交媒體數(shù)據(jù)能夠反映用戶的興趣偏好、消費(fèi)行為和購買能力等多維度信息。存儲和分析社交媒體數(shù)據(jù)能夠?yàn)槠髽I(yè)的產(chǎn)品開發(fā)定位、市場推廣和客戶關(guān)系管理提供科學(xué)的數(shù)據(jù)支持和戰(zhàn)略指導(dǎo)。在操作社交媒體數(shù)據(jù)之前,我們先來學(xué)習(xí)一下Redis中鍵、字符串、哈希表、列表、集合和有序集合的基本操作,以及Redis持久化。任務(wù)準(zhǔn)備問題1:簡述持久化的概念。全班學(xué)生以3~5人為一組進(jìn)行分組,各組選出組長。組長組織組員掃碼觀看“持久化概述”視頻,討論并回答下列問題。問題2:簡述持久化的作用。持久化概述一、鍵的基本操作如果鍵有前綴,則使用命令時需要加上鍵的前綴,如“EXISTSclass1:student”。高手點(diǎn)拔命令描述EXISTSkey1key2…檢查指定的一個或多個鍵是否存在。結(jié)果返回0,表示鍵不存在;結(jié)果返回1,表示鍵存在TYPEkey獲取指定鍵所儲存的值的數(shù)據(jù)類型KEYSpattern獲取所有匹配的鍵。其中,參數(shù)pattern為匹配條件,當(dāng)pattern為*時獲取所有鍵DBSIZE獲取鍵的數(shù)量RENAMEkeynewkey修改指定鍵的名稱。其中,參數(shù)newkey表示修改后鍵的名稱DELkey1key2…刪除指定的一個或多個鍵EXPIREkeyseconds設(shè)置指定鍵的過期時間,單位為秒TTLkey獲取指定鍵的剩余生存時間,單位為秒在Redis中,使用EXISTS、TYPE、KEYS等鍵命令可以實(shí)現(xiàn)鍵的基本操作。一、鍵的基本操作例6-1步驟1:6379>SETstudent:1Alice:6379>SETstudent:2Bob:6379>SETstudent:3Charlie操作鍵。執(zhí)行如下語句,使用SET命令設(shè)置3個學(xué)生信息鍵值對。其中,student為鍵的前綴;1、2、3為鍵;Alice、Bob和Charlie分別為鍵的值。步驟2:6379>EXISTSstudent:1執(zhí)行如下語句,檢查鍵student:1是否存在。結(jié)果返回1,表示鍵student:1存在。步驟3:6379>TYPEstudent:1執(zhí)行如下語句,獲取鍵student:1的值的數(shù)據(jù)類型。檢查鍵student:1是否存在的結(jié)果鍵student:1的值的數(shù)據(jù)類型一、鍵的基本操作步驟4:6379>DBSIZE執(zhí)行如下語句,獲取鍵的數(shù)量。步驟5:6379>RENAMEstudent:3student:id_3執(zhí)行如下語句,修改鍵student:3的名稱。鍵的數(shù)量步驟6:6379>DELstudent:id_3執(zhí)行如下語句,刪除鍵student:id_3。步驟7:6379>KEYSstudent:*執(zhí)行如下語句,獲取所有前綴為student的鍵所有前綴為student的鍵二、字符串的基本操作在Redis中,使用SET、MSET、SETNX等字符串命令可以實(shí)現(xiàn)字符串的基本操作。命令描述SETkeyvalue設(shè)置鍵值對。若該鍵已經(jīng)存在,則該鍵的舊值將會被value覆蓋MSETkey1value1key2value2...設(shè)置一個或多個鍵值對SETNXkeyvalue只有當(dāng)鍵不存在時,設(shè)置鍵值對GETkey獲取指定鍵的值MGETkey1key2...獲取一個或多個指定鍵的值GETSETkeyvalue將指定鍵的值設(shè)置為value,并返回鍵的舊值A(chǔ)PPENDkeyvalue將字符串value追加到指定鍵的值的末尾。若鍵不存在,APPEND命令會創(chuàng)建一個新的鍵,并將value設(shè)置為該鍵的值STRLENkey獲取指定鍵的值的長度GETRANGEkeystartend獲取指定鍵的值的子字符串。其中,start表示子字符串的起始位置;end表示子字符串的結(jié)束位置二、字符串的基本操作例6-2步驟1:6379>SETdiary:1"Todaywasagreatday!":6379>SETdiary:2"Feelingexcitedabouttheupcomingtrip."操作字符串。執(zhí)行如下語句,設(shè)置兩個日記鍵值對。步驟2:6379>APPENDdiary:1"Imetupwithsomeoldfriends."執(zhí)行如下語句,向鍵diary:1的值的末尾追加字符串。步驟3:6379>STRLENdiary:1執(zhí)行如下語句,獲取鍵diary:1的值的長度。鍵diary:1的值的長度步驟4:6379>GETRANGEdiary:2012執(zhí)行如下語句,獲取鍵diary:2的值的子字符串。鍵diary:2的值的子字符串三、哈希表的基本操作在Redis中,使用HSET、HMSET、HSETNX等哈希命令可以實(shí)現(xiàn)哈希表的基本操作。命令描述HSETkeyfieldvalue將指定哈希表key中指定字段field的值設(shè)置為valueHMSETkeyfield1value1field2value2…設(shè)置指定哈希表中的一個或多個指定字段的值HSETNXkeyfieldvalue當(dāng)字段field不存在時,設(shè)置指定哈希表中字段的值HGETkeyfield獲取指定哈希表中指定字段的值HMGETkeyfield1field2…獲取指定哈希表中一個或多個指定字段的值HKEYSkey獲取指定哈希表中的所有字段HVALSkey獲取指定哈希表中的所有值HLENkey獲取指定哈希表中的字段數(shù)量HGETALLkey獲取指定哈希表中的所有字段和值HEXISTSkeyfield檢查指定哈希表中的指定字段是否存在HDELkeyfield1field2...刪除指定哈希表中的一個或多個指定字段三、哈希表的基本操作例6-3步驟1:6379>HMSETteacher:id_1username"張三"

age30city"北京"操作哈希表。執(zhí)行如下語句,設(shè)置哈希表teacher:id_1中多個指定字段的值。步驟2:6379>HGETteacher:id_1username執(zhí)行如下語句,獲取哈希表teacher:id_1中username字段的值步驟3:6379>HGETALLteacher:id_1執(zhí)行如下語句,獲取哈希表teacher:id_1中的所有字段和值。哈希表中username字段的值 哈希表中的所有字段和值三、哈希表的基本操作步驟4:6379>HEXISTSteacher:id_1age執(zhí)行如下語句,檢查哈希表teacher:id_1中的age字段是否存在。結(jié)果返回1表示age字段存在。步驟5:6379>HDELteacher:id_1city執(zhí)行如下語句,刪除哈希表teacher:id_1中的city字段。步驟6:6379>HLENteacher:id_1執(zhí)行如下語句,獲取哈希表teacher:id_1中的字段數(shù)量。哈希表中age字段是否存在的結(jié)果哈希表中的字段數(shù)量四、列表的基本操作在Redis中,使用LPUSH、RPUSH、LPOP等列表命令可以實(shí)現(xiàn)列表的基本操作。命令描述LPUSHkeyvalue1value2...將一個或多個元素插入指定列表key的頭部RPUSHkeyvalue1value2...將一個或多個元素插入指定列表的尾部LPOPkey移出并返回指定列表的第一個元素RPOPkey移出并返回指定列表的最后一個元素LRANGEkeystartstop獲取指定列表中指定范圍內(nèi)的元素。其中,start表示起始索引,0表示列表的第一個元素;stop表示結(jié)束索引,-1表示列表的最后一個元素LINDEXkeyindex獲取指定列表中指定索引位置的元素LLENkey獲取指定列表的長度LINSERTkeyBEFORE|AFTERpivotvalue在指定列表中指定元素pivot的前方或后方插入新元素valueLREMkeycountvalue刪除指定列表中與指定值匹配的元素。其中,count大于0時,從列表頭部開始刪除count個匹配的元素;count小于0時,從列表尾部開始刪除count個匹配的元素;count等于0時,刪除所有匹配的元素四、列表的基本操作例6-4步驟1:6379>LPUSHfruits蘋果香蕉橙子葡萄操作哈希表。執(zhí)行如下語句,向列表fruits的頭部插入元素。步驟2:6379>LLENfruits執(zhí)行如下語句,獲取列表fruits的長度。步驟3:6379>LRANGEfruits13執(zhí)行如下語句,獲取列表fruits中索引為1到3的元素列表fruits的長度索引為1到3的元素四、列表的基本操作步驟4:6379>LINSERTfruitsBEFORE橙子西瓜執(zhí)行如下語句,在列表fruits中的橙子元素之前插入一個新元素。步驟5:6379>LREMfruits0香蕉執(zhí)行如下語句,刪除列表fruits中與香蕉匹配的所有元素。步驟6:6379>LRANGEfruits0-1執(zhí)行如下語句,獲取列表fruits中的所有元素。列表fruits中的所有元素五、集合的基本操作在Redis中,使用SADD、SMEMBERS、SISMEMBER等集合命令可以實(shí)現(xiàn)集合的基本操作。命令描述SADDkeymember1member2...向指定集合key中添加一個或多個成員memberSMEMBERSkey獲取指定集合中的所有成員SISMEMBERkeymember檢查指定集合中的指定成員是否存在SCARDkey獲取指定集合中的成員數(shù)量SREMkeymember1member2...從指定集合中移除一個或多個成員SUNIONkey1key2...返回指定集合的并集SINTERkey1key2...返回指定集合的交集SDIFFkey1key2...返回指定集合的差集五、集合的基本操作例6-5步驟1:6379>SADDclass1張三李四王二操作集合。執(zhí)行如下語句,向集合class1中添加3個學(xué)生成員。步驟2:6379>SADDclass2張三趙六孫七執(zhí)行如下語句,向集合class2中添加3個學(xué)生成員。步驟3:6379>SREMclass1王二執(zhí)行如下語句,從集合class1中移除一個學(xué)生成員。步驟4:6379>SUNIONclass1class2執(zhí)行如下語句,獲取集合class1和集合class2的并集。集合class1和集合class2的并集六、有序集合的基本操作在Redis中,使用ZADD、ZRANGE、ZREVRANGE等有序集合命令可以實(shí)現(xiàn)有序集合的基本操作。命令描述ZADDkeyscore1member1score2member2...向指定有序集合中添加一個或多個成員,每個成員都有一個關(guān)聯(lián)的分?jǐn)?shù)ZRANGEkeystartstop[WITHSCORES]按照分?jǐn)?shù)從低到高的順序,返回有序集合中指定范圍內(nèi)的成員。其中,WITHSCORES為可選參數(shù),用于返回成員的分?jǐn)?shù);start表示起始索引;stop表示結(jié)束索引ZREVRANGEkeystartstop[WITHSCORES]按照分?jǐn)?shù)從高到低的順序,返回有序集合中指定范圍內(nèi)的成員ZSCOREkeymember獲取指定有序集合中指定成員的分?jǐn)?shù)ZCARDkey獲取指定有序集合的成員數(shù)量ZREMkeymember1member2...從指定有序集合中移除一個或多個成員ZCOUNTkeyminmax計(jì)算有序集合中分?jǐn)?shù)在指定范圍內(nèi)的成員數(shù)量。其中,min表示分?jǐn)?shù)的最小值;max表示分?jǐn)?shù)的最大值ZREMRANGEBYSCOREkeyminmax從指定有序集合中移除指定分?jǐn)?shù)范圍內(nèi)的成員ZREMRANGEBYRANKkeystartstop從指定有序集合中移除指定排名范圍內(nèi)的成員六、有序集合的基本操作例6-6步驟1:6379>ZADDclass1_scores90張三85李四92王二操作有序集合。執(zhí)行如下語句,向有序集合class1_scores中添加3個成員。步驟2:6379>ZREVRANGEclass1_scores01WITHSCORES執(zhí)行如下語句,按照分?jǐn)?shù)從高到低的順序,返回有序集合class1_scores中分?jǐn)?shù)排名前二的學(xué)生姓名及其分?jǐn)?shù)。步驟3:6379>ZCOUNTclass1_scores8590執(zhí)行如下語句,計(jì)算有序集合class1_scores中分?jǐn)?shù)在85到90之間的成員數(shù)量。分?jǐn)?shù)排名前二的學(xué)生姓名及其分?jǐn)?shù)分?jǐn)?shù)在85到90之間的成員數(shù)量七、Redis持久化

定義:是指將Redis內(nèi)存中的數(shù)據(jù)保存到磁盤上的過程,以防止在服務(wù)器重啟或異常情況下丟失數(shù)據(jù)。RDB持久化AOF持久化混合持久化七、Redis持久化RDB持久化RDB持久化是Redis默認(rèn)的數(shù)據(jù)持久化機(jī)制,它按照預(yù)設(shè)的時間間隔將內(nèi)存中的數(shù)據(jù)快照異步寫入磁盤。①Redis會創(chuàng)建一個子進(jìn)程執(zhí)行持久化操作,避免干擾主進(jìn)程執(zhí)行數(shù)據(jù)的讀寫操作②子進(jìn)程會將數(shù)據(jù)快照寫入臨時文件(二進(jìn)制形式),待寫入成功后替換原RDB文件。七、Redis持久化RDB持久化實(shí)現(xiàn)RDB持久化的方法定時執(zhí)行在“redis.conf”配置文件中添加如下配置信息,調(diào)整自動觸發(fā)RDB持久化的條件。手動執(zhí)行在Redis客戶端執(zhí)行bgsave命令可以手動實(shí)現(xiàn)RDB持久化。#配置信息,如指定10秒內(nèi)有兩次更新操作,就執(zhí)行RDB持久化操作save102七、Redis持久化RDB持久化RDB持久化的優(yōu)點(diǎn):(1)備份與恢復(fù)高效(2)對主進(jìn)程性能影響?。?)啟動速度快等。RDB持久化的過程中可能會發(fā)生數(shù)據(jù)丟失,無法保證數(shù)據(jù)的完整性和一致性。執(zhí)行save命令也可以實(shí)現(xiàn)RDB持久化,但是在持久化過程中會阻塞當(dāng)前的Redis主進(jìn)程,直到RDB文件創(chuàng)建完畢。因此,不建議使用save命令實(shí)現(xiàn)RDB持久化。高手點(diǎn)拔為什么不建議使用save命令實(shí)現(xiàn)RDB持久化?七、Redis持久化AOF持久化定義:是Redis的主流持久化機(jī)制。它通過記錄服務(wù)器接收到的所有寫操作命令,并將這些命令以文本的形式追加到AOF文件中來實(shí)現(xiàn)持久化。AOF持久化即使在系統(tǒng)崩潰的情況下,只要AOF文件存在,就可以通過重新執(zhí)行該文件中的寫操作來恢復(fù)數(shù)據(jù)庫的最新狀態(tài),從而實(shí)現(xiàn)數(shù)據(jù)的持久化。七、Redis持久化AOF持久化在Redis的“redis.conf”配置文件中有以下3種持久化配置。用戶可以根據(jù)需求選擇合適的持久化配置。appendfsyncalways #每次有數(shù)據(jù)修改發(fā)生時都會同步appendfsynceverysec #每秒同步一次appendfsyncno #不主動同步Always:表示每次有數(shù)據(jù)修改發(fā)生時都會立即將數(shù)據(jù)同步寫入磁盤,這可以最大程度上保證數(shù)據(jù)的一致性和可靠性,但對性能有較大的影響Everysec:表示每秒執(zhí)行一次數(shù)據(jù)同步操作,該配置平衡了數(shù)據(jù)安全性和性能No:表示有數(shù)據(jù)修改發(fā)生時不主動執(zhí)行數(shù)據(jù)同步操作,完全依賴操作系統(tǒng)的策略來決定數(shù)據(jù)何時同步到磁盤,該配置的性能最好,但可能會發(fā)生數(shù)據(jù)丟失?;旌铣志没侵竿瑫r使用RDB持久化和AOF持久化,保留了兩種持久化機(jī)制的優(yōu)點(diǎn),從而提供更可靠和更靈活的數(shù)據(jù)持久化方案。高手點(diǎn)拔什么是混合持久化?任務(wù)實(shí)施

任務(wù)分析為了防止存儲在Redis中的社交媒體數(shù)據(jù)丟失,需要先配置持久化;然后根據(jù)需要操作社交媒體數(shù)據(jù)。

實(shí)施步驟操作社交媒體數(shù)據(jù)任務(wù)實(shí)施

實(shí)施步驟1、配置持久化步驟1啟動Master主機(jī)的終端,執(zhí)行如下命令,創(chuàng)建目錄用于存放AOF文件。[hadoop@Masterredis]$geditredis.conf步驟2執(zhí)行如下命令,打開“redis.conf”配置文件。appendonlyyes步驟3按“Ctrl+F”組合鍵,在“redis.conf”配置文件中查找“appendonlyno”,并將其修改為如下配置信息,開啟AOF持久化功能。本教材選用Redis的AOF持久化機(jī)制實(shí)現(xiàn)數(shù)據(jù)的持久化。[hadoop@Master~]$cd/usr/local/redis[hadoop@Masterredis]$mkdirdata任務(wù)實(shí)施

實(shí)施步驟dir/usr/local/redis/data步驟6重啟Master主機(jī)和終端。步驟4按“Ctrl+F”組合鍵,在“redis.conf”配置文件中查找“dir./”,并將其修改為如下配置信息,指定存儲AOF文件的目錄。步驟5按“Ctrl+F”組合鍵,在“redis.conf”配置文件中查找“appendfsynceverysec”,若其左側(cè)有注釋符(#),則刪除注釋符;然后保存并關(guān)閉配置文件。步驟7執(zhí)行如下命令,使用指定的配置文件啟動Redis服務(wù)器。appendfsynceverysec[hadoop@Master~]$redis-server/usr/local/redis/redis.conf步驟8在Master主機(jī)上啟動一個新的終端,執(zhí)行如下命令,啟動RedisCLI。[hadoop@Master~]$redis-cli--raw任務(wù)實(shí)施2、操作社交媒體數(shù)據(jù)步驟1執(zhí)行如下語句,以字符串類型存儲用戶信息,并使用user前綴組織和管理鍵。:6379>SETuser:1"username:Alice,email:alice@":6379>SETuser:2"username:Bob,email:bob@"分析表中的數(shù)據(jù),我們以字符串類型存儲用戶信息(用戶名和郵箱),便于快速訪問數(shù)據(jù);以哈希類型存儲帖子的多個屬性(標(biāo)題和內(nèi)容),可以單獨(dú)操作每個屬性而無須加載整個對象,從而提升數(shù)據(jù)操作的速度;以列表類型存儲用戶發(fā)布的帖子ID,便于管理和查詢某個用戶的所有帖子,并記錄用戶發(fā)布帖子的順序。任務(wù)實(shí)施

實(shí)施步驟:6379>HMSETpost:1title"Redis入門教程"content"這是一篇關(guān)于Redis的入門教程……":6379>HMSETpost:2title"Redis高級特性"content"這篇文章介紹了Redis的一些高級特性……":6379>HMSETpost:3title"Redis進(jìn)階教程"content"這是一篇關(guān)于Redis的進(jìn)階教程……"步驟2執(zhí)行如下語句,以哈希類型存儲每個帖子的詳細(xì)信息,并使用post前綴組織和管理鍵。其中,可以將每個帖子的鍵視為帖子的ID。步驟3執(zhí)行如下語句,以列表類型存儲用戶發(fā)布的帖子,每個元素是一個帖子的ID,并使用posts:user前綴組織和管理鍵。#Alice的帖子列表,分別為post:1和post:3:6379>LPUSHposts:user:1post:1post:3#Bob的帖子列表,為post:2:6379>LPUSHposts:user:2post:2任務(wù)實(shí)施

實(shí)施步驟:6379>EXISTSuser:1步驟4執(zhí)行如下語句,檢查用戶user:1是否存在。結(jié)果返回1,表示用戶user:1存在。步驟6執(zhí)行如下語句,獲取用戶user:1的信息,結(jié)果如圖6-22所示。:6379>GETuser:1:6379>KEYSuser:*步驟5執(zhí)行如下語句,統(tǒng)計(jì)所有用戶。所有用戶用戶user:1的信息任務(wù)實(shí)施

實(shí)施步驟:6379>HGETALLpost:1步驟7執(zhí)行如下語句,獲取帖子post:1的詳細(xì)信息,包括標(biāo)題和內(nèi)容。步驟9執(zhí)行如下語句,獲取用戶user:1發(fā)布的帖子數(shù)量。:6379>LLENposts:user:1:6379>HKEYSpost:2步驟8執(zhí)行如下語句,獲取帖子post:2包含的所有字段。帖子post:1的詳細(xì)信息帖子post:2包含的所有字段用戶user:1發(fā)布的帖子數(shù)量步驟10執(zhí)行如下語句,刪除用戶user:1發(fā)布的第一個帖子。:6379>RPOPposts:user:1項(xiàng)目實(shí)訓(xùn)

實(shí)訓(xùn)目標(biāo)某圖書借閱平臺的部分?jǐn)?shù)據(jù)如表所示。熟練操作鍵。熟練操作字符串、哈希表、列表、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論