一、redis简介

  1、非关系型数据库

  2、数据全部是存在内存里面

  3、性能非常好,每秒支持30w次读写

  4、可以通过备份数据库,把数据存到磁盘上来实现数据的持久化

二、操作redis

1、string类型

 import redis
r = redis.Redis(host='127.0.0.1',password='',db=1,port=6379) # 连接redis
r.set('jack','狂') # 数据库里面新增了一个key
r.set('jack','疯癫') # key存在用set就可以修改值
r.delete('jack') # 删除指定的key
r.setex('rose','漂亮',100) # 设置key的失效时间,单位是秒
hwt = r.get('jack') # 获取key的值,返回的是二进制数据,如果key不存在则返回None
print(hwt.decode()) # 把二进制(bytes)转成字符串
print(r.keys()) # 获取所有key
print(r.keys('niu*')) # 获取所有'niu'开头的key
r.set('双鱼座:niuniu','浪') # 冒号前面就是加的目录名字
print(r.get('user:luolei').decode()) # 获取key的值并将二进制(bytes)转化为字符串
r.flushdb() # 清空redis
# 删除所有的key
for k in r.keys():
r.delete(k)

2、hash类型:类似嵌套字典

 import redis
r = redis.Redis(host='127.0.0.1',password='',db=1,port=6379) # 连接redis
r.hset('stu_info','刘伟','1000万') # 新增一个key,大key是stu_info,小key是'刘伟'
r.hset('stu_info','张流量','交作业0') # 新增一个key,大key是stu_info,小key是'张流量'
r.hset('stu_info','董春光','发红包0') # 新增一个key,大key是stu_info,小key是'董春光'
print(r.type('stu_info')) # 查看key是什么类型的
print(r.hget('stu_info','张流量').decode()) # 指定大key和小key获取对应的value
print(r.hgetall('stu_info')) # 获取里面所有的key和value,返回的是一个字典,里面的key和value都是二进制的
r.hdel('stu_info','张流量') # 删除指定的key
r.delete('stu_info') # 删除整个大key
r.expire('jack',100) # 对一个key设置失效时间,string类型和hash类型都可以用
# 把r.hgetall返回的字典里面的key和value转成字符串
dic = {}
for key,value in r.hgetall('stu_info').items():
dic[key.decode()] = value.decode()
print(dic)

三、练习

将MySQL表中的数据导入到redis数据库中 

  1、连接数据库,查到数据库里面所有的数据,游标类型要用pymysql.cursors.DictCursor

  2、查到所有的数据:[{"id":1,"passwd":"123","username":"Amy","is_admin":1},......]

  3、循环这个list,取到username,把username当做key

  4、再把小字典转成json,存成hash的value

 import pymysql,redis,json
r = redis.Redis(host='127.0.0.1',password='',db=1,port=6379)
conn = pymysql.connect(host='192.168.1.112',user='test',passwd='',port=3306,db='test',charset='utf8')
sql = 'select * from my_user;'
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(sql)
all_data = cur.fetchall()
for data in all_data:
key = data.get('username')
r.hset('stu_info_test',key,json.dumps(data))
cur.close()
conn.close()

最新文章

  1. 第一篇HBuilder在这里!
  2. Feister network
  3. ecmall 后台导航增加菜单
  4. BestCoder 2nd Anniversary 1002 Arrange
  5. hdu 4691 最长的共同前缀 后缀数组 +lcp+rmq
  6. linux下归档、解压缩工具:tar命令
  7. Ubuntu 14.04下Hadoop2.4.1集群安装配置教程
  8. 插件开发之360 DroidPlugin源码分析(一)初识
  9. Mem系列函数介绍及案例实现
  10. C++初步 2
  11. python之log
  12. 2019MABU3月班——SAP导入总账科目小笔记
  13. ubuntu 系统升级 cmake
  14. 20165213&20165225结对学习感想及创意照
  15. [git]使用vimdiff做git代码比较
  16. jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。
  17. 记录一次OOM排查经历(一)
  18. java-JProfiler(二)-进行本地JVM的性能监控-tomcat
  19. bzoj 1102
  20. UDP示例

热门文章

  1. 五、WebSocket 链接
  2. IDeajCommunity 配置smart tomcat插件
  3. GPT-2,吓坏创造者的「深度造假写手」
  4. jquery 保留两位小数
  5. linux高性能服务器编程pdf免费下载
  6. 深入理解JAVA虚拟机 垃圾收集器和内存分配策略
  7. springboot与spring比较区别
  8. pyqt5--QTDesigner--安装与配置
  9. 【shell】sed处理多行合并
  10. Python Number(数字) Ⅱ