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