python操作redis集群_python操作redis集群
strictRedis對象方法用于連接redis
指定主機地址,port與服務(wù)器連接,默認(rèn)db是0,redis默認(rèn)數(shù)據(jù)庫有16個,在配置文件中指定database 16
上代碼
1、對redis的單實例進行連接操作
根據(jù)不同的實例方法,與redis的命令對應(yīng)
python3>>>importredis>>>r = redis.StrictRedis(host='localhost', port=6379, db=0,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")>>>conn.keys()
[b'name3', b'name2', b'name1']--------------------
2、sentinel集群連接并操作
[root@db01~]#redis-server /data/6380/redis.conf
[root@db01 ~]#redis-server /data/6381/redis.conf
[root@db01 ~]#redis-server /data/6382/redis.conf
[root@db01 ~]#redis-sentinel /data/26380/sentinel.conf &
--------------------------------
## 導(dǎo)入redis sentinel包
>>> from redis.sentinel importSentinel##指定sentinel的地址和端口號
>>> sentinel = Sentinel([('localhost', 26380)], socket_timeout=0.1)##測試,獲取以下主庫和從庫的信息
>>> sentinel.discover_master('mymaster')>>> sentinel.discover_slaves('mymaster')##配置讀寫分離#寫節(jié)點
>>> master = sentinel.master_for('mymaster', socket_timeout=0.1)#讀節(jié)點
>>> slave = sentinel.slave_for('mymaster', socket_timeout=0.1)###讀寫分離測試 key
>>> master.set('oldboy', '123')>>> slave.get('oldboy')'123'
----------------------redis cluster的連接并操作(python2.7.2以上版本才支持redis cluster,我們選擇的是3.5)
https://github.com/Grokzen/redis-py-cluster3、python連接rediscluster集群測試
使用
python3>>> from rediscluster importStrictRedisCluster>>> 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")
True>>>
'bar'
----------------------
redis存儲session
安裝模塊
安裝模塊
pip3 install django-redis-sessions
或者
pip3 install django-redis
本文這里用的是django 2.0語法,創(chuàng)建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 #設(shè)置session過期時間為30分鐘
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
創(chuàng)建app01
django-admin startapp app01
編寫session視圖函數(shù) app01.views
from django.shortcuts importrender,HttpResponsedefset_session(request):
request.session['username']='chaoge'request.session['age']=18
return HttpResponse("設(shè)置sesson成功")defget_session(request):
username=request.session['username']
age= request.session['age']return HttpResponse(username+":"+str(age))
添加url路由
vim mydjango/urls.py
from django.contrib importadminfrom django.urls importpathfrom app01 importviews
urlpatterns=[
path('set_session/',views.set_session),
path('get_session/',views.get_session),
path('admin/', admin.site.urls),
]
確保啟動redis服務(wù)端,默認(rèn)方式啟動
redis-server &redis-cli 連接無誤
發(fā)送ping命令得到pong即可
啟動django
python3 manage.py runserver 0.0.0.0:8000
訪問視圖,設(shè)置一條session信息,存入redis數(shù)據(jù)庫
訪問視圖,獲取session信息
檢查redis數(shù)據(jù)庫,是否存在一條key
127.0.0.1:6379> keys *
1) ":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."
總結(jié)
以上是生活随笔為你收集整理的python操作redis集群_python操作redis集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用PM2搭建在线vue.js开发环境(
- 下一篇: VSCode配合eslint进行Java