python操作redis集群
strictRedis对象方法用于连接redis
指定主机地址,port与服务器连接,默认db是0,redis默认数据库有16个,在配置文件中指定database 16
上代码
、对redis的单实例进行连接操作
根据不同的实例方法,与redis的命令对应
python3
>>>import redis
>>>r = redis.StrictRedis(host='localhost', port=, db=,password='root')
>>>r.set('lufei', 'guojialei')
True
>>>r.get('lufei')
'bar'
增删改查
>>> conn=redis.StrictRedis()
>>>
>>>
>>> conn.set("name1","alex1")
True
>>> conn.set("name2","wupeiqi")
True
>>>
>>>
>>> conn.set("name1","alex666")
True
>>> conn.delete("name2","name1")
2
>>> conn.keys()
[b'name3', b'name2', b'name1']
-------------------- 、sentinel集群连接并操作 [root@db01 ~]# redis-server /data//redis.conf
[root@db01 ~]# redis-server /data//redis.conf
[root@db01 ~]# redis-server /data//redis.conf
[root@db01 ~]# redis-sentinel /data//sentinel.conf & --------------------------------
## 导入redis sentinel包
>>> from redis.sentinel import Sentinel
##指定sentinel的地址和端口号
>>> sentinel = Sentinel([('localhost', )], 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('oldboy', '')
>>> slave.get('oldboy')
'' ----------------------
redis cluster的连接并操作(python2..2以上版本才支持redis cluster,我们选择的是3.)
https://github.com/Grokzen/redis-py-cluster 、python连接rediscluster集群测试
使用 python3
>>> from rediscluster import StrictRedisCluster
>>> startup_nodes = [{"host": "127.0.0.1", "port": ""}]
### 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")
True
>>>
'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
安装模块
安装模块
pip3 install django-redis-sessions
或者
pip3 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": ,
# "CONNECTION_POOL_CLASS_KWARGS": {
# "max_connections": ,
# }
}
}
}
#SESSION_COOKIE_AGE = * #设置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']=
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:
访问视图,设置一条session信息,存入redis数据库

访问视图,获取session信息

检查redis数据库,是否存在一条key
127.0.0.1:> keys *
) ":1:django.contrib.sessions.cachep220moqvxclz2hyjqmbybqs3v8ck2i39" 获取这个key的值
127.0.0.1:6379> get :1:django.contrib.sessions.cachep220moqvxclz2hyjqmbybqs3v8ck2i39
"\x80\x04\x95!\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\busername\x94\x8c\x06chaoge\x94\x8c\x03age\x94K\x12u."
python操作redis集群的更多相关文章
- python 操作redis集群
一.连接redis集群 python的redis库是不支持集群操作的,推荐库:redis-py-cluster,一直在维护.还有一个rediscluster库,看GitHub上已经很久没更新了. 安装 ...
- 15.9,python操作redis集群
上代码 .对redis的单实例进行连接操作 python3 >>>import redis >>>r = redis.StrictRedis(host=, db ...
- java操作redis集群配置[可配置密码]和工具类(比较好用)
转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类 <dependency> <groupId>red ...
- java操作redis集群配置[可配置密码]和工具类
java操作redis集群配置[可配置密码]和工具类 <dependency> <groupId>redis.clients</groupId> & ...
- php操作redis集群哨兵模式
前段时间项目里正好用到了redis的集群哨兵部署,因为此前并无了解过,所以一脸懵逼啊,查阅了几篇资料,特此综合总结一下,作为记录. 写在前沿:随着项目的扩张,对redis的依赖也越来越大,为了增强re ...
- Java操作 Redis 集群
// 连接redis集群 @Test public void testJedisCluster() { JedisPoolConfig config = new JedisPoolConfig(); ...
- JedisCluster操作redis集群
1.pom引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...
- python 搭建redis集群
所需依赖 redis.io/download">redis-3.0.7ruby-1.8.7:sudo apt-get install rubyrubygems:sudo apt-get ...
- JedisCluster操作redis集群demo
package com.chenk; import java.util.HashMap; import java.util.HashSet; import java.util.List; import ...
随机推荐
- 记使用talend从oracle抽取数据时,数字变为0的问题
数据源为oracle,字段类型为number. 发现通过mainline连接到一个logrow控件,输入的该字段的值为0 经过多次测试还是没发现有什么规律. 通过查看代码发现有这一句内容. if (r ...
- SV class
SV中的class通过new来创建实例,new函数可以传递多个参数: packet P1: P1 = new:创建一个P1的对象: P2 = P1:P2也指向同一个对象: P2 = new P1:P ...
- 【winform】DataGridView控件[表格]
一.表格 0.从数据库获取一个表在DataGridView中显示: 数据库查询的方式大同小异,重点是如何把数据显示到控件中的方法,通过dataset作为数据的中继,把Adapter中的数据存到data ...
- 问题 1462: [蓝桥杯][基础练习VIP]Huffuman树
题目描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: ...
- Python基础(六)_全局变量声明、可变参数、关键字参数
1. global声明全局变量 #声明name这个变量为全局变量,只是写在函数里面 #写代码时,尽量不要用全局变量,会一直占用内存. ------->{'name':'abc','s ...
- yii2 使用多个数据库的案例
配置: 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=ip; ...
- maven 执行testng.xml文件失败解决问题
在pom.xml中配置了testng的依赖后,在surefire-plugin中又配置了suitexmlfiles指向testng.xml文件,但是使用mvn test运行时,没有运行testng.x ...
- MyBatis进阶(二)
MyBatis之动态SQL 动态SQL之foreach 有时SQL语句where条件是在一个集合或者数组里,需要使用in关键字,这时可以使用foreach动态SQL语句,例如: select * fr ...
- centos 7 已经开启 22 端口但无法连接
已经开启 22 端口但无法连接 刚买的 vps ,默认 ssh 端口是 29488, 使用以下方式连接ssh -p 29488 root@x.x.x.x觉得加端口有点麻烦, 希望使用默认的 22 端口 ...
- JAVA中的责任链模式(CH02)
对责任链CH01做出优化,解决耦合度太高问题 记得上一篇我们使用的是抽象类,然后用子类去继承的方法实现等级的桥接,从而发现了耦合度太高. 为了解决这个问题. 我们本次使用接口进行抽象,然后使用到一个” ...