1、python要操作redis 首先需要安装redis模块,然后导入才能使用

安装:pip install redis

导入:import redis

2、连接redis

r = redis.Redis(host='192.168.21.129',password='123456',db=1,port=6379)

password在配置文件redis.conf中查看,port一般是6379,db可根据需要操作的数据库进行选择

3、redis的增删改查

redis中key所存储的值类型有多种,主要说明string类型和hash类型。用命令   redis 127.0.0.1:6379> TYPE KEY_NAME可查看值的存储类型。

以下是针对string类型的操作
r.set('user3','e10adc3949ba59abbe56e057f20f883e')#数据库里面新增一个值,修改也是set
r.setex('user1','e10adc3949ba59abbe56e057f20f883e',)#数据库里新增一个值,并且设置key的失效时间,最后这个参数是秒
r.set('session:user1',{"seessionid":"a5dfcb047721e02a6f8bff779c856165","login_time":""})#新增值,值都在一个session文件夹里面存储
print(r.get('user1'))#获取对应key的值,返回的类型是byte类型,需要解码
print(r.get('user1').decode())#获取到的value值解码
print(r.get('session:user1').decode())
print(r.keys())#获取所有的key,存在一个list里面,元素是byte类型,如:[b'user3', b'user1', b'session:user1']
#获取所有的key,并且解码输出
list = [k.decode() for k in r.keys()]
print(list) #输出如:['user3', 'user1', 'session:user1']
r.delete('user3')#删除指定的key
#删除所有的key需要循环
for k in r.keys():
r.delete(k)
以下是哈希类型  hash操作,嵌套字典
r.hset('info','张三','北京,本科,测试工程师')#hash类型存储方式会有两个key,大key(info)和小key(张三),但无法设置小key的失效时间
r.hset('info','李四','湖北,博士,Boss')
r.hset('info','王五','江西,博士,CEO')
r.hset('login_mll','test1','{"seessionid":a5dfcb047721e02a6f8bff779c815165,"login_time":201805051820}')
print(r.hget('info','张三').decode()) #指定大key和小key获取对应的数据
print(r.hgetall('info')) #获取里面所有的k和-v,所有的K,V存储在字典里,但是是byte类型 # 获取里面所有的k和-v,所有的K,V存储在字典里,并且解码输出
info = r.hgetall('info')
new_info = {}
for k,v in info.items():
new_info[k.decode()] = v.decode()
print(new_info) r.hdel('info','张三') #删除指定key
r.delete('info') #删除整个key
r.expire('info',) #第一个key设置失效时间,无法设置小key的失效时间
print(r.ttl('info'))#获取key的失效时间
print(r.type('info')) #查看key是什么类型的

小练习:将数据库中某个表的数据导入到redis中

分析:1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour

           2、查到所有数据 [ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"test","is_admin":1}]
          3、循环这个list,取到usernamer,把username当做key
          4、再把这个小字典转成json,存进去就ok。

import pymysql,json,redis
r = redis.Redis(host='192.168.21.129',password='HK139bc&*',db=,port=)
conn = pymysql.connect(host='192.168.21.129',user='jxz',passwd='',db='jxz',charset='utf8')
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute('select * from my_user;')
all_data = cur.fetchall() #数据库某表里面所有数据,输出为list形式,list中每个元素为表中的每行数据,每行数据为字典形式
#如:[{'username': 'niuniu', 'is_admin': , 'id': , 'passwd': 'niuniu'}, {'username': 'xiaohei1234', 'is_admin': , 'id': , 'passwd': 'aA123456'}, {'username': 'gyx', 'is_admin': , 'id': , 'passwd': ''}

for data in all_data: #data为表中每行数据,是字典
k = data.get('username') #将username的值获取,作为小key
r.hset('stu_info_mkk',k,json.dumps(data)) #将data字典转为json字符串,新增到redis中
cur.close()
conn.close()

python学习笔记(十二)python操作redis的更多相关文章

  1. python学习笔记(十 二)、操作数据库

    每一种语言都少不了多数据库进行各种操作. python支持多种数据库.有关python支持的数据库清单,请参阅:https://wiki.python.org/moin/DatabaseInterfa ...

  2. python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL

    python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...

  3. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  4. Python学习笔记之二——Python的运行机制,一般人肯定不会

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:XX   Python解释器简介   解释器是一种让其他程序运行起来的程 ...

  5. python 学习笔记(十二) 文件和序列化

    python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...

  6. python学习笔记(十)、文件操作

    在前面我们了解到了没得模块,其中有一个模块为fileinput,为文件操作模块,不知道小伙伴们是否还记得? 1 打开文件 要打开文件,可以使用fileinput中的fileinput.input函数进 ...

  7. python 学习笔记十二 html基础(进阶篇)

    HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览 ...

  8. python学习笔记十二:类的定义

    demo #!/usr/bin/python class Person: name = 'jim' age = 25 def say(self): print 'My name is ' + self ...

  9. python学习笔记(十二)-网络编程

    本文结束使用 Requests 发送网络请求.requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到.可以说,Requests 完全满足如今网络的需求. ...

  10. Python学习笔记十二

    HTML全称:Hyper Text Markup Language超文本标记语言 不是编程语言 HTML使用标记标签来描述网页 2.  HTML标签 开始标签,结束标签.  例如:<html&g ...

随机推荐

  1. ApplicationListener接口中的onApplicationEvent被调用两次解决方式

    Spring容器初始化完毕后,调用BeanPostProcessor这个类,这个类实现ApplicationListener接口,重写onApplicationEvent方法, 方法中就是我们自己要在 ...

  2. ngx_lua 随笔

    --[[ test --]] ngx.header.content_type = "text/plain"; --输出头部 local user = ngx.var.arg_use ...

  3. Appendix A. Common application properties

    Appendix A. Common application properties Prev  Part X. Appendices  Next URl链接:https://docs.spring.i ...

  4. 让 MySQL 支持 emoji 存储

    要让 MySQL 开启 utf8mb4 支持,需要一些额外的设置. 1. 检查 MySQL Server 版本 utf8mb4 支持需要 MySQL Server v5.5.3+ 2. 设置表的 CH ...

  5. SSIS 自测题-控制流控件类

    说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 62.描述一下 Execute SQL Task 的作用,在 ...

  6. Boosting with Abstention

    论文提出了一种loss: x是原始数据,y是对应的label,h(x)是一个判别函数,r(x)相当于训练了一个信心函数,r(x)越大,代表对自己做的判断的信息越大,当r(x)<0的时候,就拒绝进 ...

  7. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

  8. 002Jsp的内置对象

    1 课程回顾 Jsp基础 1)Jsp的执行过程 tomcat服务器完成:jsp文件->翻译成java文件->编译成class字节码文件-> 构造类对象-> 调用方法 tomca ...

  9. 分享在github超酷超炫特效动画,不看你会懊悔的。

    有图有真相直接上效果图,有须要的朋友们能够到连接上去下载. 下载地址:https://github.com/ChrisRenke/DrawerArrowDrawable 下载地址:https://gi ...

  10. VS工程目录下的ipch文件夹和.sdf文件

    Visual Studio 2010工程目录下的ipch文件夹和.sdf文件 - web8 - 博客园http://www.cnblogs.com/web100/archive/2012/12/21/ ...