柚子快報(bào)激活碼778899分享:nosql 數(shù)據(jù)庫(kù) Redis
柚子快報(bào)激活碼778899分享:nosql 數(shù)據(jù)庫(kù) Redis
一、 Redis介紹
1.NoSQL
也叫Not Only SQL(不僅僅是SQL, 不用 sql語(yǔ)言操作的數(shù)據(jù)庫(kù)), 一般指非關(guān)系型數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù): 以數(shù)據(jù)庫(kù)表為單位存儲(chǔ),表與表之間存在某種關(guān)系 非關(guān)系型數(shù)據(jù)庫(kù): 數(shù)據(jù)與數(shù)據(jù)之間沒(méi)有關(guān)系, 數(shù)據(jù)就是以鍵值對(duì)的形式存儲(chǔ), 通過(guò)鍵獲取到值
在互聯(lián)網(wǎng)發(fā)展中: 大致經(jīng)歷三個(gè)時(shí)期,web1.0,web2.0,web3.0
web1.0:他是靜態(tài)網(wǎng)頁(yè), 數(shù)據(jù)在網(wǎng)頁(yè)就寫(xiě)死的, 數(shù)據(jù)直接在html里,每次更新, 都要更改html代碼
web2.0:這時(shí)候就是動(dòng)態(tài)頁(yè)面了, 數(shù)據(jù)存放在數(shù)據(jù)庫(kù)里面, 頁(yè)面顯示的數(shù)據(jù)可以從數(shù)據(jù)里動(dòng)態(tài)獲取
web3.0: 由于越來(lái)越多的用戶(hù)參與到信息的構(gòu)建流程里, 比如:抖音,頭條用戶(hù)都可以自己創(chuàng)建自己的信息, 又或者是節(jié)假日的商品搶購(gòu),秒殺,信息量爆炸, 就會(huì)導(dǎo)致傳統(tǒng)的系統(tǒng)架構(gòu)支撐不起來(lái), 存在問(wèn)題
由于關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)在硬盤(pán)上, 查詢(xún)需要與硬盤(pán)發(fā)生IO( 讀取操作 ), 在一瞬間, 有當(dāng)量用戶(hù)訪問(wèn)時(shí), 關(guān)系型數(shù)據(jù)庫(kù)就會(huì)崩潰 優(yōu)點(diǎn):
1.存儲(chǔ)在內(nèi)存中, 讀寫(xiě)非???2.數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單(鍵值形式) 3.高性能, 一秒可以讀寫(xiě)數(shù)量級(jí)上萬(wàn) 4.支持?jǐn)?shù)據(jù)持久化(就是數(shù)據(jù)備份到硬盤(pán)上, 也是鍵值對(duì))
二、Linux 上安裝Redis
首先在網(wǎng)上下載redis.tar.gz的源碼包 可以點(diǎn)擊這里直接下載
下載源碼包
下載源碼包有兩種方式
1>由傳輸根據(jù)xftp-7工具來(lái)傳輸
2>由linux通過(guò)網(wǎng)站來(lái)直接下載
進(jìn)入到opt目錄,opt目錄是linux安裝軟件的文件夾 使用命令: cd /opt 進(jìn)入到opt目錄 wget https://download.redis.io/releases/redis-6.2.4.tar.gz通過(guò)官網(wǎng)下載
解壓源碼包 進(jìn)入到源碼包的下載目錄opt后, 再解壓源碼包 使用命令: tar -zxvf redos-6.0.8.tar.gz來(lái)解壓源碼包`編譯源碼包
進(jìn)入opt目錄后,進(jìn)入解壓后的redis里進(jìn)行編譯 命令: cd redis-6.0.8 進(jìn)入源碼包 make 進(jìn)行編譯
安裝指定位置 命令: mkdir -p /opt/redis 創(chuàng)建安裝目錄 make install PEOFIX=/opt/redis 安裝指定目錄 啟動(dòng)redis服務(wù)
命令: cd /opt/redis/bin進(jìn)入到redis的bin目錄里 ./redis-server啟動(dòng)redis數(shù)據(jù)庫(kù)
三、Redis里的基本設(shè)置
首先啟動(dòng)Redis后如果要輸入指令, 就按Ctr+c 之后Redis就會(huì)關(guān)閉, 不會(huì)在后天啟動(dòng) 所以就要設(shè)置Redis啟動(dòng)后, 放在后臺(tái)
如圖啟動(dòng)之后,Ctr+C進(jìn)入命令操作Redis就會(huì)結(jié)束進(jìn)程
命令: cd /opt/redis-6.0.8/ 進(jìn)入到源碼包里
cp redis.conf /opt/redis/bin 復(fù)制源碼里的配置文件到安裝的位置里 vim redis.conf編輯redisconf文件(此時(shí)是修改安裝Redis里的配置文件)
redis.conf文件圖示:
接下來(lái)注意修改的位置:
注釋bind 127.0.01 設(shè)置遠(yuǎn)程訪問(wèn) daemonize on改為 daemonize yes設(shè)置密碼 注意: 由于密碼在下方, 配置文件又特別長(zhǎng), 所以可以在編輯器里通過(guò)搜索模式來(lái)查 在命令模式里 /查找單詞 再點(diǎn)擊回車(chē) 就可以直接到搜索的那個(gè)單詞的地方 點(diǎn)擊n是下一個(gè)關(guān)鍵單詞,N是上一個(gè)單詞
配置完成之后就可以開(kāi)啟Redis服務(wù)器了 命令: cd /opt/redis/bin 去安裝redis目錄下的bin文件里 ./redis-server redis.conf ps -ef | grep redis 檢查一下redis是否運(yùn)行
redis已運(yùn)行成功
結(jié)束redis進(jìn)程 命令: kill -9 進(jìn)程號(hào) 結(jié)束進(jìn)程操作進(jìn)入數(shù)據(jù)庫(kù) 命令: ./redis-cli aurth 密碼 輸入密碼 ping 當(dāng)返回PONG時(shí)就說(shuō)明進(jìn)入數(shù)據(jù)庫(kù)成功
四、Redis的數(shù)據(jù)類(lèi)型
redis有五種數(shù)據(jù)類(lèi)型
String , Hash ,List , set , zset五種 redis是以鍵值對(duì)存儲(chǔ), 鍵都是String類(lèi)型的, 值是所說(shuō)的5種
String類(lèi)型
雖然名叫String , 但是他可以存儲(chǔ)圖片(base64格式) ,對(duì)象(json格式) set 鍵 值 存值 get 鍵 值 獲取值 del 鍵 值 刪值
1>單值緩存 set user {name:tom,age:20}
2>對(duì)象緩存(不對(duì)對(duì)象里的值進(jìn)行操作時(shí)使用)
keys * 列出所有 鍵
3>計(jì)數(shù)器
新聞點(diǎn)贊時(shí), 使用計(jì)數(shù)器來(lái)計(jì)數(shù) set newsid:1 0 存值, 鍵是newsid:1 ,值是0 incr newsid:1 值+1 decr newsid:1 值-1 get newsid:1 獲取鍵newsid:1的值
注意: 計(jì)數(shù)器后面的值必須是int類(lèi)型
Hash類(lèi)型
Redis里的Hash類(lèi)型存儲(chǔ)的是String 類(lèi)型的 field value 的映射表, 存儲(chǔ)的是(可修改的)對(duì)象,存的是字符串與字符串之間的映射信息 用我的來(lái)說(shuō)就是, 鍵 : (鍵: 值), 值又是一個(gè)鍵值對(duì)
hset key field value 儲(chǔ)存一個(gè)哈希表key的鍵值 hmset key field value [field value...] 存儲(chǔ)多個(gè)鍵值對(duì) hget key field獲取單個(gè)鍵的值 hget key field [field ...]獲取多個(gè)鍵的值 hdel key field [field ...]刪除哈希表key的field鍵值 hlen users 獲取users的鍵對(duì)應(yīng)的field value 的數(shù)量 hgetall users 獲取users鍵對(duì)應(yīng)的所有 鍵值對(duì)
hincrby key file 改變值 改變field對(duì)應(yīng)的值 如果是減小,改變值就是負(fù)數(shù)
List類(lèi)型
Ridis里的List是最簡(jiǎn)單的字符串列表
lpush key value [value...] 插入一個(gè)或多個(gè)value到列表的表頭 rpush key value [value...] 插入一個(gè)或多個(gè)value到列表的表尾 lpop key value 移除返回列表key的頭元素 rpop key value 移除返回列表key的尾元素 lrange key start stop 返回區(qū)間start stop的元素, 包括start, stop
列表實(shí)現(xiàn)棧和隊(duì)列:
棧:Stack=lpush+lpop Queue= lpush+rpop
Set類(lèi)型
Set類(lèi)型的數(shù)據(jù)沒(méi)有無(wú)順序,不可重復(fù)
sadd key member [member]往key集合存儲(chǔ)值 srem key member [member]刪除key集合里的member值 smembers key 獲取集合key的所有元素
Zset
Zset集合的數(shù)據(jù)有序,不可重復(fù) Zset集合會(huì)為每一個(gè)數(shù)據(jù)關(guān)聯(lián)一個(gè)分?jǐn)?shù), 按照這個(gè)分?jǐn)?shù)從小到大來(lái)排序 zset的集合元素時(shí)唯一的, 關(guān)聯(lián)分?jǐn)?shù)可以重復(fù)
zadd key scord member[score member...]向集合key添加分?jǐn)?shù)score的元素member zrem key member[member...]刪除集合key的元素 zscore key member 查詢(xún)集合key里的元素member的分?jǐn)?shù)score zincrrby key num member向集合key里的元素member的score添加num,并返回score zcard key 查詢(xún)集合key的元素總數(shù) zrange key start stop 查詢(xún)集合key 從start 到stop的元素
五、設(shè)置數(shù)據(jù)的失效時(shí)間
有時(shí)候, 我們需要給數(shù)據(jù)設(shè)置失效時(shí)間, 數(shù)據(jù)存著只會(huì)占用空間 例如:驗(yàn)證碼… redis可以通過(guò)一些命令, 能夠設(shè)置數(shù)據(jù)的過(guò)期時(shí)間, 過(guò)期后數(shù)據(jù)自動(dòng)刪除
EX 表示秒 PX表示毫秒 (PX,EX不區(qū)分大小寫(xiě)) 如: set name jim ex 30 30 秒失效
柚子快報(bào)激活碼778899分享:nosql 數(shù)據(jù)庫(kù) Redis
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。