Python学习之==>操作Redis
一、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()
Python学习之==>操作Redis的更多相关文章
- python学习之操作redis
一.Redis安装网上很多可以查找 二.redis-py的安装,使用命令pip install redis. 安装过程中如果产生连接超时的错误,可以使用国内镜像参考如下 豆瓣:pip install ...
- java、python及jmeter操作redis(接口自动化必备)
redis是nosql数据库之一,其存储结构简单,提供高性能服务,所以在架构中是很常用的. 在做接口自动化测试过程中,有时也会涉及到redis,比如:发送短信验证码,我们做接口自动化测试,如何模拟发送 ...
- 尚硅谷redis学习11-jedis操作redis
前面学习了redis的知识后,下面学习一下如何在java中通过jedis操作redis. 所需jar包:commons-pool-xxxx.jar,jedis-xxx.jar 下面看一下常用操作: 1 ...
- Python学习-day11 RabbitMQ Redis
这次文章包含两个内容: 1.RabbitMQ使用 2.Redis基础操作 代码部分为练习笔记和作业 概念部分转自Alex老师 RabbitMQ 安装 http://www.rabbitmq.com/i ...
- 10 python学习笔记-操作数据库(十)
在功能.接口测试中,常常需要通过数据库的操作,来准备数据.检测环境及核对功能.接口的数据库操作是否正确. 在自动化测试中,就需要我们用代码连接数据库自动完成数据准备. 环境检查及数据库断言的功能.数据 ...
- Python学习-list操作
Python列表(list)操作: 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置 ...
- Python基础学习六 操作Redis
import redis r = redis.Redis(host=',db=1) #set get delete setex 都是针对string类型的 k-v # r.set('louis_ses ...
- python学习之——操作浏览器
使用selenium的webdriver框架,对浏览器的常规操作,如下~~ #coding=utf-8 from selenium import webdriver import time from ...
- python学习 文件操作
一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...
随机推荐
- 使用parted 创建一个大于2T的分区
1.查看现有分区 parted -l fdisk -l 2.对/dev/sdb分一个区 [root@test ~]# parted /dev/sdb (parted) mkpart ...
- hadoop的三大组件安装
安装过程分3步走: 1.安装namenode主机一台; 2.安装datanode主机三台; 3.启用集群的三大组件: HDFS,Mapreduce,Yarn. 重要的事情: 新建的虚拟机,预备安装ha ...
- Console Add Item –Java使用eBay API SDK刊登商品 详解
准备工作: 1. 运行Eclipse (或其他Java IDE) 2.创建一个ConsoleAddItem工程(项目) 选JDK 1.5.1.6.1.8等版本,已测试1.6.1.8版本. 3.下载JA ...
- c语言模块化编程
C语言模块化编程(封装) 模块即是一个.c 文件和一个.h 文件的结合,头文件(.h)中是对于该模块接口的声明.模块化的实现方法和实质:将一个功能模块的代码单独编写成一个.c文件,然后把该模块的接口函 ...
- HDU-6669-Game(模拟,贪心)
链接: https://vjudge.net/problem/HDU-6669 题意: 度度熊在玩一个好玩的游戏. 游戏的主人公站在一根数轴上,他可以在数轴上任意移动,对于每次移动,他可以选择往左或往 ...
- HDU-4185-Oil Skimming(最大匹配)
链接: https://vjudge.net/problem/HDU-4185 题意: Thanks to a certain "green" resources company, ...
- c++string int转化简单写法
#include<iostream> #include<string> #include<sstream> //定义了stringstream类 using nam ...
- html caption标签 语法
html caption标签 语法 caption是什么标签? 作用:定义表格标题. 说明:caption 标签必须紧随 table 标签之后.您只能对每个表格定义一个标题.通常这个标题会被居中于表格 ...
- BZOJ 4517: [Sdoi2016]排列计数 错排 + 组合
从 $n$ 个数中选 $m$ 个不错排,那就是说 $n-m$ 个数是错排的. 用组合数乘一下就好了. Code: #include <cstdio> #include <algori ...
- 186. [USACO Oct08] 牧场旅行 (第三次考试大整理)
186. [USACO Oct08] 牧场旅行 输入文件:pwalk.in 输出文件:pwalk.out 简单对比 时间限制:1 s 内存限制:128 MB n个被自然地编号为1..n奶牛 ...