Redis的簡(jiǎn)單使用和配置
上一個(gè)小節(jié)我們簡(jiǎn)單學(xué)習(xí)了一下 MongoDB 數(shù)據(jù)庫(kù),這節(jié)課我們來學(xué)習(xí)下另外一個(gè)在爬蟲開發(fā)中經(jīng)常會(huì)用到的數(shù)據(jù)庫(kù),這就是我們大名鼎鼎的鍵值對(duì)數(shù)據(jù)庫(kù)–Redis。
Redis 以它超快的讀寫速度受到爬蟲開發(fā)程序員的青睞,在正式的爬蟲開發(fā)中我們經(jīng)常使用 Redis,比如我們的分布式爬蟲通常會(huì)基于 Redis 進(jìn)行設(shè)計(jì)。這個(gè)小節(jié)我們會(huì)介紹:
- Redis的基本概念;
- Redis的安裝;
- Redis的連接;
- Redis的基本使用。
通過本節(jié)課的學(xué)習(xí)你會(huì)掌握:
-
Redis基本概念;
-
可以動(dòng)手安裝配置Redis;
-
能夠操作創(chuàng)建數(shù)據(jù)庫(kù),并且進(jìn)行簡(jiǎn)單的增刪改查功能。
1. Redis 數(shù)據(jù)庫(kù)簡(jiǎn)介
Redis是高效,快捷的 key-value 型的數(shù)據(jù)庫(kù),一般會(huì)被用作緩存或者消息隊(duì)列。Redis 有多種數(shù)據(jù)結(jié)構(gòu),可以應(yīng)用與不同的場(chǎng)景。
隊(duì)列:
-
普通隊(duì)列:使用列表數(shù)據(jù)結(jié)構(gòu)
-
延時(shí)隊(duì)列: 使用哈希表來實(shí)現(xiàn)
-
優(yōu)先級(jí)隊(duì)列: 使用有序集合來實(shí)現(xiàn)
緩存:
- 使用字符串和哈希表來實(shí)現(xiàn)高速緩存。
去重:
-
使用集合的數(shù)據(jù)結(jié)構(gòu)進(jìn)行去重;
-
利用字符串?dāng)?shù)據(jù)結(jié)構(gòu),使用步隆過濾器,實(shí)現(xiàn)大規(guī)模的去重;
-
使用HyperLogLog數(shù)據(jù)結(jié)構(gòu),進(jìn)行去重。
Redis安裝:
首先需要安裝并啟動(dòng)Redis的服務(wù)器,具體的不同系統(tǒng)的安裝步驟,可參考慕課網(wǎng)關(guān)于 Redis 的學(xué)習(xí)資料進(jìn)行操作,這里就不再贅述。
啟動(dòng) Redis 服務(wù)器需要運(yùn)行命令:
redis-server
服務(wù)啟動(dòng)成功后,會(huì)顯示 Ready to accept connections。
效果展示:
測(cè)試一下客戶端能否使用
redis-cli ping
成功后,如下所示:
2. Redis基本使用:
首先需要安裝并啟動(dòng) Redis 的服務(wù)器,具體的不同系統(tǒng)的安裝步驟,可參考慕課網(wǎng)關(guān)于Redis的學(xué)習(xí)資料進(jìn)行操作,這里就不再贅述。
2.1 字符串的增刪改查
我們字符串進(jìn)行增刪改查,效果如下:
2-2 List的增刪改查
我們對(duì)List進(jìn)行增刪改查,效果如下:
2-3 Hash的增刪改查
我們對(duì)Hash進(jìn)行增刪改查,效果如下:
3. 使用 python 操作 Redis
啟動(dòng) Redis 服務(wù)器后,我們還需要安裝 python 的 Redis 第三方包才能通過 python 來操作 Redis 數(shù)據(jù)庫(kù)。Python 用來操作 Redis 數(shù)據(jù)庫(kù)的第三包就叫做 redis,我們直接通過 pip 來安裝:
pip install Redis
成功安裝了 python 的 redis 包之后,效果展示:
接下來,連接數(shù)據(jù)庫(kù):
>>> import redis
>>> r = redis.Redis()
然后就可以直接進(jìn)行操作
3.1 字符串的增刪改查:
通過python,對(duì)字符串進(jìn)行增刪改查
-
set 設(shè)置字符串
-
delete 刪除字符串
例子如下:
3.2 Hash類型的增刪改查
通過 python, 對(duì) Hash 進(jìn)行增刪改查
-
hset增加數(shù)據(jù)
-
hdel更改數(shù)據(jù)
-
lgetall查詢數(shù)據(jù)
例子如下:
3.3 List類型的增刪改查
通過python,對(duì) List 進(jìn)行增刪改查
-
lpush增加數(shù)據(jù)
-
lset更改數(shù)據(jù)
-
lrem刪除數(shù)據(jù)
例子如下:
4. 小結(jié)
Redis是一個(gè)基于內(nèi)存的key-value數(shù)據(jù)庫(kù),支持的數(shù)據(jù)類型有string, lists, hash, sets等,我們這里講述了字符串,列表和哈希的增刪改查。