這篇文章將為大家詳細(xì)講解有關(guān)如何在Django中使用redis,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、滁州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。一、安裝redis:
1.下載:
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
2.解壓
tar -zxvf redis-3.2.8.tar.gz
3.復(fù)制,放到/usr/local目錄下
sudo mv ./redis-3.2.8 /usr/local/redis
4.進(jìn)入到redis目錄下
cd /usr/local/redis/
5.生成
sudo make
6.測(cè)試,時(shí)間會(huì)比較長(zhǎng)
sudo make test
7.安裝,將redis的命令安裝到usr/local/bin/目錄中
sudo make install
8.安裝成功后,進(jìn)入usr/local/bin/目錄中查看:
cd /usr/local/bin
9.將配置文件復(fù)制放到/etc/redis目錄下:
sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf
可能剛開始etc下沒有redis目錄,需要自己手動(dòng)創(chuàng)建一個(gè)redis文件夾。
以上在第6步的時(shí)候可能會(huì)遇到這樣的問(wèn)題:
You need tcl 8.5 or newer in order to run the Redis testmake: *** [test] Error 1
解決辦法:安裝tcl
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/ cd /usr/local/tcl8.6.1/unix/ sudo ./configure sudo make sudo make install
二、 配置redis:
配置信息在/etc/redis/redis.conf下,打開sudo vi /etc/redis/redis.conf。
核心配置選項(xiàng):
綁定ip:bind 127.0.0.1
端口號(hào):port 6379
是否以守護(hù)進(jìn)程運(yùn)行:daemonize yes 必須改為yes
數(shù)據(jù)庫(kù)文件:dbfilename dump.db
數(shù)據(jù)庫(kù)文件存儲(chǔ)路徑:dir /var/lib/redis 可改可不改,改的話提前創(chuàng)建好文件夾
日志文件:logfile /var/log/redis/redis-server.log 必須要改,提前創(chuàng)建好文件夾
數(shù)據(jù)庫(kù),默認(rèn)有16個(gè):database 16
主從復(fù)制:slaveof
配置小結(jié):主要更改兩塊:1,守護(hù)進(jìn)程;2.日志文件路徑
三、啟動(dòng)redis:
1.根據(jù)配置文件啟動(dòng)redis服務(wù)器
sudo redis-server /etc/redis/redis.conf
2.啟動(dòng)redis客戶端:
redis-cli
3.輸入ping命令測(cè)試:
127.0.0.1:6379> pingPONG
4.關(guān)閉redis服務(wù)器:
ps aux|grep redis # 查看redis進(jìn)程號(hào)kill -9 pid redis進(jìn)程號(hào) # 關(guān)閉redis服務(wù)器
5.切換數(shù)據(jù)庫(kù):默認(rèn)有16個(gè),通過(guò)0-15來(lái)標(biāo)識(shí),默認(rèn)是第一個(gè)數(shù)據(jù)庫(kù)0號(hào)數(shù)據(jù)庫(kù)。
select n
四、redis的數(shù)據(jù)操作:
1.redis的存儲(chǔ)格式為key-value格式。key是字符串類型,value的類型有5種:string、hash、list、set、zset。
2.redis中關(guān)于鍵的常見的操作:
2.1查看左右的鍵:keys *
2.2查看某個(gè)鍵是否存在,存在返回1不存在返回0:exists key1
2.3查看鍵的值對(duì)應(yīng)的數(shù)據(jù)類型:type key1
2.4刪除鍵值對(duì):del key1 key2
2.5設(shè)置鍵的過(guò)期時(shí)間,如果沒有指定默認(rèn)一直存在:expire key seconds
2.6查看鍵的有效時(shí)間:ttl key1
2.7清空數(shù)據(jù)庫(kù):flushall
3.string類型的基本操作:
3.1保存
set key value 保存單個(gè)鍵值對(duì) mset key1 value1 key2 value2 保存多個(gè)鍵值對(duì) setex key seconds value 設(shè)置鍵值和過(guò)期時(shí)間 append key value追加值
3.2獲取
get key 獲取單個(gè) mget key1 key2 獲取多個(gè)
3.3刪除
del key
4 hash類型的基本操作:
4.1保存
hset key field value #設(shè)置單個(gè)屬性 hmset key field1 value1 field2 value2 ... #設(shè)置多個(gè)屬性
4.2獲取
hkeys key # 獲取指定鍵的所有屬性 hget key field # 獲取單個(gè)屬性的值 hmget key field1 field2 ... # 獲取多個(gè)屬性的值 hvals key # 獲取所有屬性的值
4.3刪除
del key # 刪除整個(gè)hash的鍵和值 hdel key field1 field2 ... # 刪除屬性和屬性對(duì)應(yīng)的值
4.4關(guān)于hash類型的個(gè)人理解:
可以將hash類型理解為用來(lái)存儲(chǔ)對(duì)象:
5 list類型的基本操作:
5.1保存
lpush key value1 value2 ... #從左側(cè)依次插入數(shù)據(jù) rpush key value1 value2 ... #從右側(cè)依次插入數(shù)據(jù) linsert key before或after 現(xiàn)有元素 新元素 #從指定元素的前或后插入新元素
5.2獲取
lrange key start stop
start、stop為元素的下標(biāo)索引,從左側(cè)開始,第一個(gè)元素為0,-1標(biāo)識(shí)最后一個(gè)元素。獲取所有的元素:lrange key 0 -1
5.3刪除指定元素
lrem key count value
將列表中前count次出現(xiàn)的值為value的元素移除。
count > 0: 從頭到尾移除
count < 0: 從尾到頭移除
count = 0: 移除所有
6.set類型的基本操作
特點(diǎn):無(wú)序集合、元素唯一性不重復(fù)、沒有修改操作
6.1增加元素
sadd key member1 member2 ...
6.2獲取元素
smembers key # 返回所有元素
6.3刪除指定元素
srem key member1 member2 ...
7.zset類型的數(shù)據(jù)操作
特點(diǎn):有序集合、元素唯一性不重復(fù)、沒有修改操作、每個(gè)元素都會(huì)關(guān)聯(lián)一個(gè)double類型的權(quán)重,根據(jù)權(quán)重從小到大排列
7.1增加
zadd key score1 member1 score2 member2 ...
7.2獲取
zrange key start stop # 根據(jù)索引獲取 zrangebyscore key min max # 獲取權(quán)重在min和max之間的數(shù)據(jù) zscore key member # 返回成員member的score值
7.3刪除
zrem key member1 member2 ... # 刪除指定元素 zremrangebyscore key min max #刪除權(quán)重在指定范圍的元素
五、redis與python進(jìn)行交互:
1.在虛擬環(huán)境中安裝redis包:
pip install redis
2.調(diào)用模塊:
from redis import StrictRedis
3.創(chuàng)建對(duì)象:
sr = StrictRedis(host='localhost', port=6379, db=0) # 默認(rèn)就是這樣的值,不寫也行。
4.用sr這個(gè)對(duì)象操作redis,將redis中的命令當(dāng)作函數(shù)讓sr調(diào)用就ok。
六、Django框架中session存儲(chǔ)到redis中的配置
默認(rèn)情況下session是存儲(chǔ)在數(shù)據(jù)庫(kù)中的,但是當(dāng)用session保存用戶的狀態(tài)時(shí),用戶頻繁的訪問(wèn)服務(wù)器,會(huì)增大數(shù)據(jù)庫(kù)的壓力,也會(huì)降低用戶訪問(wèn)的速度。為了解決這個(gè)問(wèn)題將session存儲(chǔ)到redis中。
第一種配置方法:(不使用Django中session默認(rèn)的存儲(chǔ)方式,直接將session存儲(chǔ)的地方配置到redis中)
# 1.在虛擬環(huán)境中安裝包 pip install django-redis-sessions==0.5.6 # 2.在Django項(xiàng)目的settings文件中增加下面的配置 SESSION_ENGINE = 'redis_sessions.session' SESSION_REDIS_HOST = 'localhost' SESSION_REDIS_PORT = 6379 SESSION_REDIS_DB = 2 SESSION_REDIS_PASSWORD = '' SESSION_REDIS_PREFIX = 'session'
第二種配置方法:(先將Django中的緩存設(shè)置為redis,然后將session的存儲(chǔ)地方設(shè)置為Django的緩存中)
#1.先在虛擬環(huán)境中安裝包 pip install django_redis #2. 設(shè)置redis作為django的緩存設(shè)置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", # 把這里緩存你的redis服務(wù)器ip和port "LOCATION": "redis://172.16.179.142:6379/12", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } # 3.設(shè)置redis存儲(chǔ)django的session信息 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"
關(guān)于如何在Django中使用redis就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:如何在Django中使用redis-創(chuàng)新互聯(lián)
本文來(lái)源:http://www.rwnh.cn/article40/csseeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、企業(yè)建站、網(wǎng)站設(shè)計(jì)、面包屑導(dǎo)航、網(wǎng)站收錄、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容