在Django中使用redis:包括安裝、配置、啟動。


一、安裝redis:

1.下載:

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

 2.解壓

tar -zxvf redis-3.2.8.tar.gz

 

3.復制,放到/usr/local目錄下

sudo mv ./redis-3.2.8 /usr/local/redis

 

4.進入到redis目錄下

cd /usr/local/redis/

 

5.生成

sudo make

 

6.測試,時間會比較長

sudo make test

 

7.安裝,將redis的命令安裝到usr/local/bin/目錄中

sudo make install

 

8.安裝成功后,進入usr/local/bin/目錄中查看:

cd /usr/local/bin

 

 

9.將配置文件復制放到/etc/redis目錄下:

sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf

 

 可能剛開始etc下沒有redis目錄,需要自己手動創建一個redis文件夾。

以上在第6步的時候可能會遇到這樣的問題:

You need tcl 8.5 or newer in order to run the Redis test
make: *** [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。

核心配置選項:

綁定ip:bind 127.0.0.1

端口號:port 6379

是否以守護進程運行:daemonize yes  必須改為yes

數據庫文件:dbfilename dump.db  

數據庫文件存儲路徑:dir /var/lib/redis  可改可不改,改的話提前創建好文件夾

日志文件:logfile /var/log/redis/redis-server.log  必須要改,提前創建好文件夾

數據庫,默認有16個:database 16

主從復制:slaveof

配置小結:主要更改兩塊:1,守護進程;2.日志文件路徑

三、啟動redis:

1.根據配置文件啟動redis服務器

sudo redis-server /etc/redis/redis.conf 

 

2.啟動redis客戶端:

redis-cli

 

3.輸入ping命令測試:

127.0.0.1:6379> ping
PONG

 

4.關閉redis服務器:

ps aux|grep redis    # 查看redis進程號
kill -9 pid redis進程號    # 關閉redis服務器

 

5.切換數據庫:默認有16個,通過0-15來標識,默認是第一個數據庫0號數據庫。

select n

 

四、redis的數據操作:

1.redis的存儲格式為key-value格式。key是字符串類型,value的類型有5種:string、hash、list、set、zset。

2.redis中關於鍵的常見的操作:

2.1查看左右的鍵:keys *

2.2查看某個鍵是否存在,存在返回1不存在返回0:exists key1

2.3查看鍵的值對應的數據類型:type key1

2.4刪除鍵值對:del key1 key2

2.5設置鍵的過期時間,如果沒有指定默認一直存在:expire key seconds

2.6查看鍵的有效時間:ttl key1

2.7清空數據庫:flushall

3.string類型的基本操作:

3.1保存

  • set key value  保存單個鍵值對
  • mset key1 value1 key2 value2  保存多個鍵值對
  • setex key seconds value  設置鍵值和過期時間
  • append key value追加值

3.2獲取

  • get key  獲取單個
  • mget key1 key2  獲取多個

3.3刪除

  • del key

4 hash類型的基本操作:

4.1保存

hset key field value    #設置單個屬性
hmset key field1 value1 field2 value2 ...    #設置多個屬性

 

4.2獲取

hkeys key    # 獲取指定鍵的所有屬性
hget key field    # 獲取單個屬性的值
hmget key field1 field2 ...    # 獲取多個屬性的值
hvals key    # 獲取所有屬性的值

 

4.3刪除

del key    # 刪除整個hash的鍵和值
hdel key field1 field2 ...    # 刪除屬性和屬性對應的值

 

4.4關於hash類型的個人理解:

可以將hash類型理解為用來存儲對象:

 

 5。list類型的基本操作:

5.1保存

lpush key value1 value2 ...    #從左側依次插入數據
rpush key value1 value2 ...    #從右側依次插入數據
linsert key before或after 現有元素 新元素    #從指定元素的前或后插入新元素

 

 5.2獲取

lrange key start stop    

 

 start、stop為元素的下標索引,從左側開始,第一個元素為0,-1標識最后一個元素。獲取所有的元素:lrange key 0 -1

5.3刪除指定元素

lrem key count value

 

 將列表中前count次出現的值為value的元素移除。

count > 0: 從頭到尾移除

count < 0: 從尾到頭移除

count = 0: 移除所有

 6.set類型的基本操作

特點:無序集合、元素唯一性不重復、沒有修改操作

6.1增加元素

sadd key member1 member2 ...

 

 6.2獲取元素

smembers key    # 返回所有元素

 

6.3刪除指定元素

srem key member1 member2 ...

 

 

 7.zset類型的數據操作

特點:有序集合、元素唯一性不重復、沒有修改操作、每個元素都會關聯一個double類型的權重,根據權重從小到大排列

7.1增加

zadd key score1 member1 score2 member2 ...

 

7.2獲取

zrange key start stop  # 根據索引獲取

zrangebyscore key min max  # 獲取權重在min和max之間的數據
zscore key member  # 返回成員member的score值

 

7.3刪除

zrem key member1 member2 ...    # 刪除指定元素
zremrangebyscore key min max    #刪除權重在指定范圍的元素

五、redis與python進行交互:

 1.在虛擬環境中安裝redis包:

pip install redis

 

 2.調用模塊:

from redis import StrictRedis

 

 3.創建對象:

sr = StrictRedis(host='localhost', port=6379, db=0)  # 默認就是這樣的值,不寫也行。

 

 4.用sr這個對象操作redis,將redis中的命令當作函數讓sr調用就ok。

六、Django框架中session存儲到redis中的配置

默認情況下session是存儲在數據庫中的,但是當用session保存用戶的狀態時,用戶頻繁的訪問服務器,會增大數據庫的壓力,也會降低用戶訪問的速度。為了解決這個問題將session存儲到redis中。

第一種配置方法:(不使用Django中session默認的存儲方式,直接將session存儲的地方配置到redis中)

# 1.在虛擬環境中安裝包
pip install django-redis-sessions==0.5.6

# 2.在Django項目的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中的緩存設置為redis,然后將session的存儲地方設置為Django的緩存中)

#1.先在虛擬環境中安裝包
pip install django_redis

#2. 設置redis作為django的緩存設置
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        # 把這里緩存你的redis服務器ip和port
        "LOCATION": "redis://172.16.179.142:6379/12",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

# 3.設置redis存儲django的session信息
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM