python redis教程_django使用redis做缓存,及python操作redis

django中使用redis

1.直接使用

import redis

# 默认连接6379,没有密码设置,所以不用填面参数(填了报错),可以自己以配置文件启动(不要配置文件后台启动,启动连得还是6379端口),在配置文件可以修改host,port,password等,

r = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True) # decode_responses将二进制数据解析为字符串

r.set('name','张超')

r.setnx('hobby','打酱油')

r.setex('age',10,18) # 给age添加过期时间,参数2才是timeout

r.mset({'a':1,'b':2, 'c':'good', 'd':'李四'})

print(r.mget('a', 'b', 'c', 'd','name','bobby')) # ['1', '2', 'good', '李四', '张超', None]

r.incrby('a',100)

print(r.mget('a', 'b', 'c', 'd','name','bobby')) # ['101', '2', 'good', '李四', '张超', None]

r.rpush('stus','bob', 'ben', 'jerry', 'tom', 'tank') #

print(r.lrange('stus',0,1)) # ['bob', 'ben']

r.zadd('games', {'bob':97, 'ben':99, 'jerry':77,'tom':100})

# 正序去倒数前三名

print(r.zrange('games',0,2)) # ['jerry', 'bob', 'ben']

# 反序取前三名

print(r.zrevrange('games',0,2)) # ['tom', 'ben', 'bob']

2.reids 连接池版

pool = redis.ConnectionPool(host='localhost', port=6379, db=0, decode_responses=True,max_connections=100)

redis.Redis(connection_pool=pool)

print(r.zrevrange('games',0,2)) # ['tom', 'ben', 'bob']

django 本地缓存的使用

import redis

pool = redis.ConnectionPool(max_connections=100,)

r = redis.Redis(connection_pool=pool)

# from libs import tx_sms

#

# code = tx_sms.get_sms_code()

# print(code)

# r.setex('sms', 300, code)

import django

import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE','zhike.settings.dev')

django.setup()

from user import models

user_query = models.User.objects.all()

# redis不能直接存对象

# r.setex('user_query', 300, user_query)

from django.core.cache import cache

# django缓存使用本地缓存,可以直接存对象,是因为内部将使用pickle将对象做了序列化,

# 我们没在全局配置CACHE,就默认使用django全局配置的CACHE(本地缓存),在global_settings文件查看全局配置

# from django.conf import global_settings

'''

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',

}

}

在LocMemCache类中写了set,get,incr,add,delete,clear等方法

'''

cache.set('user_query',user_query,300)

print(cache.get('user_query'))

django使用redis做缓存

需安装插件:pip install django-redis,使用本插件,在django中可以直接使用redis存、取queryset对象

# django的setting文件配置使用redis做缓存 可以缓存直接queryset对象

CACHES = {

"default": {

"BACKEND": "django_redis.cache.RedisCache", # 默认使用DefaultClient类下的方法做缓存的操作,还有ShardClient,HerdClient。

"LOCATION": "redis://127.0.0.1:6379/10", # 默认是redis编号为0的数据库

"OPTIONS": {

"CLIENT_CLASS": "django_redis.client.DefaultClient",

"CONNECTION_POOL_KWARGS": {"max_connections": 100},

"DECODE_RESPONSES": True,

"PSAAWORD": "",

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值