python操作redis
安装redis模块
pip install redis
pip install django-redis
一、操作单实例
import redis
r = redis.StrictRedis(host="192.168.170.131", port=6379, password="zxczxc")
r.set("a", "a1")
print(r.get("a"), type(r.get("a")))
# b'a1' bytes类型
二、哨兵集群
# 导入redis sentinel包
from redis.sentinel import Sentinel
# 指定sentinel的地址和端口号
sentinel = Sentinel([('192.168.170.131', 26380)], socket_timeout=0.1)
# 测试,获取以下主库和从库的信息
sentinel.discover_master('mymaster')
sentinel.discover_slaves('mymaster')
# 配置读写分离
# 写节点
master = sentinel.master_for('mymaster', socket_timeout=0.1)
# 读节点
slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
# 读写分离测试 key
master.set('a', '123')
slave.get('a')
# '123'
三、rediscluster集群
pip3 install redis-py-cluster
from rediscluster import StrictRedisCluster
startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]
# Note: decode_responses must be set to True when used with python3
rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)
rc.set("foo", "bar")
四、redis存储session
django-redis-sessions 官方文档:https://pypi.org/project/django-redis-sessions/
dango-redis 官方文档:http://niwinz.github.io/django-redis/latest/#_configure_as_cache_backend
安装模块
安装模块
pip install django-redis-sessions
或者
pip install django-redis
本文这里用的是django 2.0语法,创建django项目
django-admin startproject mydjango
修改settings.py文件
写入
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "",
# "PARSER_CLASS": "redis.connection.HiredisParser",
# "SOCKET_TIMEOUT": 10,
# "CONNECTION_POOL_CLASS_KWARGS": {
# "max_connections": 2,
# }
}
}
}
#SESSION_COOKIE_AGE = 30 * 60 #设置session过期时间为30分钟
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
创建app01
django-admin startapp app01
编写session视图函数 app01.views
from django.shortcuts import render,HttpResponse
def set_session(request):
request.session['username']='chaoge'
request.session['age']=18
return HttpResponse("设置sesson成功")
def get_session(request):
username=request.session['username']
age = request.session['age']
return HttpResponse(username+":"+str(age))
添加url路由
vim mydjango/urls.py
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('set_session/',views.set_session),
path('get_session/',views.get_session),
path('admin/', admin.site.urls),
]
确保启动redis服务端,默认方式启动
redis-server &
redis-cli 连接无误
发送ping命令得到pong即可
启动django
python3 manage.py runserver 0.0.0.0:8000
访问视图,设置一条session信息,存入redis数据库