python結合redis操作


redis是什么?
redis是用於操作內存的一個軟件。

1 1、可以做持久化,且有兩種模式:AOF和RDB
2 2、相當於一個大字典,存儲的是key/value
3 3、單進程單線程,請求多則排隊,一個個處理
4 4、支持5大數據類型
5     a.字符串
6     b.列表
7     c.集合
8     d.字典
9     e.有序集合
特點


1.服務器上安裝redis

pass


2.python安裝redis模塊

pip3 install redis

 

3.redis的基本連接和增查

import redis

# redis的基礎操作
conn = redis.Redis(host='182.254.210.59',port=6379,password='123123') # 創建連接redis

conn.set('k1','v1') # 往redis中插入一條數據
val = conn.get('k1')	# 查詢插入的數據
print(val)	# 打印值

 

4.redis的連接池創建及使用

pool = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123')    # 創建一個連接池
conn = redis.Redis(connection_pool=pool,max_connections=1000)   	# 調用連接池,並指定最多連接數
conn.set('k2','v2')	# 設置值
print(conn.get('k2'))	# 取值

如果想更方便的使用,則創建一個redis_pool的連接池,將pool = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123',max_connections=1000)放到這個文件中,具體方法
在redis_pool文件中
import redis
POOL = redis.ConnectionPool(host='182.254.210.59',port=6379,password='123123',max_connections=1000)

在redis操作文件中
from redis_oper.redis_pool import POOL
conn = redis.Redis(connection_pool=POOL) 
conn.set('k2','v2')
print(conn.get('k2'))

 

5.Django中操作redis
安裝django-redis模塊

pip3 install django-redis

在setting配置:

# reids_configure
CACHES = {
    "default":{
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://182.254.210.59:6379", # 連接地址
        "OPTIONS": {
            "CLIENT_CALSS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 1000},
            "PASSWORD":"123123", # 連接密碼
        }
    }
}

在views中調用

def index(request):
    conn = get_redis_connection('default')
    conn.hset('dic','age',22)
    return HttpResponse('設置成功')


def order(request):
    conn = get_redis_connection('default')
    val = conn.hget('dic','age')
    val = val.decode('utf-8')
    return HttpResponse('取值成功 '+val)

 

6.全站緩存
全站緩存要用到中間件了,在settings中間件配置的 MIDDLEWARE 模塊中,加兩條配置

'django.middleware.cache.UpdateCacheMiddleware', # 加到中間件的最上面
'django.middleware.cache.FetchFromCacheMiddleware', # 加到中間件的最下面
附加:
CACHE_MIDDLEWARE_ALIAS = "" # 設置緩存的別名
CACHE_MIDDLEWARE_SECONDS = "" # 設置緩存的超時時間
CACHE_MIDDLEWARE_KEY_PREFIX = "" 

全站緩存指的是每次在請求過來的時候先經過中間件,然后到緩存,如果緩存中沒有的話去就去數據庫中找,在返回數據的時候順便放到緩存中一份

7.單個視圖緩存
方式一: 給想要被緩存的單個視圖加裝飾器

from django.views.decorators.cache import cache_page # 在views中調用

@cache_page(60 * 15) 
def index(request):
    ...

方式二:在配置url的同時直接指定緩存

from django.views.decorators.cache import cache_page

urlpatterns = [
    url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
]

 

 

8.局部視圖緩存
8.1 引入TemplateTag

{% load cache %}

8.2 使用緩存

{% cache 5000 緩存key %} # 指5000秒 緩存key 指緩存存放的地方

    <div></div> # 要被緩存的單獨一塊內容

{% endcache %}	


免責聲明!

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



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