Redis学习---Redis操作之Python连接
PyCharm下的Redis连接
连接方式:
1. 操作模式
redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py
2. 连接池
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
注: 一次连接下的多个操作: 管道操作[PipeLine]
Redis的优化操作:
1. 连接池
2.管道 【Redis是单线程操作,异步高效IO,IO多路复用,epoll】
操作模式连接Redis
myRedis.py [注意取名才不能用redis.py,否则会报错]
import redis
r = redis.Redis(host='192.168.2.105', port=6379)
# r = redis.Redis(host='192.168.2.105', port=6379, password=123) # 带密码认证的redis操作
r.set('hello2018', 'world2018')
print(r.get('hello2018'))
结果显示:
reids.Redis属性列举:
连接池连接Redis
连接池连接Redis
import redis
pool = redis.ConnectionPool(host='192.168.2.105', port=6379, password=123)
r = redis.Redis(connection_pool=pool)
r.set('name', 'ftl2200')
name = r.get('name')
print(name)
管道[PipeLine]连接Redis
【更多参考】https://www.w3cschool.cn/jenkins/jenkins-e7bo28ol.html
管道更适合2个程序之间的数据共享...
redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。必须执行execute()函数后才执行该操作。
import redis pool = redis.ConnectionPool(host='192.168.2.105', port=6379, password=123)
r = redis.Redis(connection_pool=pool)
# pipe = r.pipeline(transaction=False)
pipe = r.pipeline(transaction=True) # 原子操作,类似事务,所有的执行成功则操作成功
pipe.get('name')
pipe.get('age')
pipe.execute() # 从池中获取并执行
Redis的发布和订阅
【更多参考】http://www.cnblogs.com/alex3714/articles/6217453.html
Redis问题解决
问题1; Py连接Redis失败:
问题想象:
问题定位:
0. 查看本机IP以及远程服务器6379端口是否OK
1. 判断IP是否ping通
2. 判断是否是防护墙阻隔
3. 判断6379端口是否打开
netstat -lntpu | grep 6379
4. 修改Redis服务,增加IP访问
sudo vi /etc/redis/redis.conf
# 默认只有127.0.0.1可以访问Redis
5. 重启服务
/etc/init.d/redis-server stop
/etc/init.d/redis-server start
6. 查看服务
netstat -lntpu | grep 6379
问题2: 报错Redis module 'redis' has no attribute 'Redis'
问题现象:
问题解决:
我们的文件名redis.py跟官方定义的redis.py重名,默认就叫原则,所以找不到Redis属性,更改文件名称为myRedis.py解决
问题3: Redis的连接是不安全的,不需要密码
Redis学习---Redis操作之Python连接的更多相关文章
- Redis学习——Redis持久化之AOF备份方式保存数据
新技术的出现一定是在老技术的基础之上,并且完善了老技术的某一些不足的地方,新技术和老技术就如同JAVA中的继承关系.子类(新技术)比父类(老技术)更加的强大! 在前面介绍了Redis学习--Redis ...
- Redis 学习笔记3:Jedis 连接虚拟机下的Redis 服务
Jedis 是 Redis 官方首选的 Java 客户端开发包. 虚拟机的IP地址是192.168.8.88. Jedis代码是放在windows上的,启动虚拟机上的Redis服务之后,用Jedis连 ...
- Redis学习——Redis事务
Redis和传统的关系型数据库一样,因为具有持久化的功能,所以也有事务的功能! 有关事务相关的概念和介绍,这里就不做介绍. 在学习Redis的事务之前,首先抛出一个面试的问题. 面试官:请问Redis ...
- Redis学习——Redis持久化之RDB备份方式保存数据
从这一个介绍里面知道,redis比memcache作为缓存数据库强大的地方,一个是支持的数据类型比较多,另一个就是redis持久化功能. 下面就介绍Redis的持久化之RDB! 一:什么是redis的 ...
- [转]Redis学习---Redis高可用技术解决方案总结
[原文]https://www.toutiao.com/i6591646189714670093/ 本文主要针对Redis常见的几种使用方式及其优缺点展开分析. 一.常见使用方式 Redis的几种常见 ...
- 尚硅谷redis学习11-jedis操作redis
前面学习了redis的知识后,下面学习一下如何在java中通过jedis操作redis. 所需jar包:commons-pool-xxxx.jar,jedis-xxx.jar 下面看一下常用操作: 1 ...
- Redis学习---Redis操作之String
set(name, value, ex=None, px=None, nx=False, xx=False) 在Redis中设置值,默认,不存在则创建,存在则修改 参数: ex,过期时间(秒 ...
- Redis学习---Redis的免密操作
Redis的免密操作 问题解决[方式一]:当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效 1.首先进入redis,如果没有开启redis则需要先开启: [r ...
- Redis学习---Redis操作之其他操作
全局有效的其他操作 save 强制将内存/缓存中的key刷到硬盘上 ------------------------------------------------------------------ ...
随机推荐
- Linux-(touch,cat,nl,more|less,head|tail)
touch命令 1.命令格式: touch [选项]... 文件... 2.命令参数: -a 或--time=atime或--time=access或--time=use 只更改存取时间. -c ...
- Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
什么是ApplicationContext? 它是spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些. ApplicationContext则是应用的容器. Sprin ...
- ibatis中的cdata和xml中cdata的含义
ibatis的cdata用于sqlmap文件中,二sqlmap本身就是xml文件,即解析cdata的方法与xml文件的cdata相同. 简单来说:cdata就是用来表明纯文本的,如果没有这个的话 &l ...
- Oracle 12c Lnux 启动脚本
#!/bin/bash # #oracle: Start/Stop Oracle Database 11g R2/12c # # chkconfig: # description: The Oracl ...
- 文件触发式实时同步 Rsync+Sersync Rsync+Inotify-tools
一.概述 1.Rsync+Sersync 是什么? 1)Sersync使用c++编写基于inotify开发的触发机制: 2)Sersync可以监控所监听的目录发生的变化(包括新建.修改.删除),具体到 ...
- ORACLE数据库数据的备份与恢复
原创作品,转自请在文字开头显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10052949.html 数据备份恢复在数据库管理中至关重要,今天,总结一下 ...
- CSS页面重构“鑫三无准则”之“无图片”准则——张鑫旭
一.再说关于“鑫三无准则” “鑫三无准则”这个概念貌似最早是在去年的去年一篇名叫“关于Google圆角高光高宽自适应按钮及其拓展”的文章中提过.这是自己在页面重构的经验中总结出来的一套约束自己CSS的 ...
- 移除button点击时的黑边
input[type=submit], input[type=reset], input[type=button]{ outline:none; filter: chroma(color=#00000 ...
- bae使用nodejs遇到的问题---‘Fix depends failed. Please check requirements.txt.’
今天尝试了百度开放云里面的nodejs云引擎,部署没有任何问题,修改文件后发现了发布不了,去查看发布设置发现了问题: Fix depends failed. Please check requirem ...
- exception processing, template error resolving template
错误信息:Exception processing template “/view/df”: Error resolving template “/view/df”, template might n ...