操作redis
Posted 测试的自我放逐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作redis相关的知识,希望对你有一定的参考价值。
redis也是一个数据库,非关系型数据库,是通过键值对存储。
关系型数据库(mysql、oracle、sql server、db2、sqlite
Sql)
数据存在磁盘上
非关系型数据库mongodb、redis
没有表
sql
get(‘k‘)#获取数据
set(‘xx‘)#添加数据
redis数据全部都是存在内存里面。
redis本身性能是非常好的,每秒支持30w次的读写。
可以通过在磁盘备份,实现持久化。比如常用session可以写入。默认端口6379
##操作redius
import redis
r = redis.Redis(host=‘192.168.0.0‘,password=‘HK139bc&*‘,db=1,port=6379)
#使用redis.Redis方法连接
#增删改查
# r.set(‘niuhanyang‘,‘帅!‘) #数据库里面新增一个值k-v值
#修改也是set
# r.delete(‘niuhanyang‘)
#r.setex(‘python_123‘,‘哈哈哈‘,20) #设置key的失效时间,最后这个参数是秒
# hwt = r.get(‘hwt‘) #redius获取数据 结果有b 是二进制
# print(hwt.decode()) #吧二进制装维字符串
# print(r.keys(‘*xxx*‘))#获取到所有的key 放入到list中,可以搭配*进行模糊查询
# print(r.get(‘sdfsdf‘))#如果key不存在 结果none
# r.set(‘天蝎座:mpp‘,‘呵呵呵‘)#通过:可以添加文件夹
# r.get(‘天蝎座:mpp‘)
上面操作都是针对 string类型
# for k in r.keys(): #删除所有的key
# r.delete(k)
哈希类型 hash 相当于 嵌套字典 key的名字不能重复
# r.hset(‘stu_info‘,‘刘伟‘,‘1m8 100w存款‘)
# r.hset(‘stu_info‘,‘张流量‘,‘浪,为了不交作业,故意让狗咬他‘)
# r.hset(‘stu_info‘,‘董春光‘,‘为了不交作业,找了一条狗咬张流量,然后陪张流量去医院‘)
# print(r.hget(‘stu_info‘,‘张流量‘).decode()) #指定大key和小key获取对应的数据
# print(r.hgetall(‘stu_info‘)) #获取里面所有的k和-v 指定大key
# stu_info = r.hgetall(‘stu_info‘)
# r.hdel(‘stu_info‘,‘gyx‘) #删除指定key
# r.delete(‘stu_info‘) #删除整个key
r.expire(‘aaa‘,100) #第一个key设置失效时间
new_stu_info = {}
# for k,v in stu_info.items():
# new_stu_info[k.decode()] = v.decode()
# print(new_stu_info)
# print(r.type(‘stu_info‘)) #查看key是什么类型的
# print(r.type(‘zll‘))
# s=‘呵呵‘
# s.encode() #把字符串转成二进制
# hwt = b‘sdfsdfsdf‘
# hwt.decode() #把bytes类型转成字符串
练习将表中数据写入redius
#pymysql、json、redis
#1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour
#2、查到所有数据返回类似[ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"niuhayang","is_admin":1}]
#3、循环这个list,取到usernamer,把username当做key
#4、再把这个小字典转成json,存进去就ok。
import pymysql,json,redis
r = redis.Redis(host=‘118.24.3.40‘,password=‘HK139bc&*‘,db=1,port=6379)
conn=pymysql.connect(host=‘118.24.3.40‘,user=‘jxz‘,passwd=‘123456‘,db=‘jxz‘,charset=‘utf8‘)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(‘select * from my_user;‘)
all_data = cur.fetchall()
for data in all_data:
k = data.get(‘username‘)
r.hset(‘stu_info_nhy‘,k,json.dumps(data))#json转为string写入
cur.close()
conn.close()
#点击右键console,select 数据库 操作set get 可以使用 flushdb清楚数据库
以上是关于操作redis的主要内容,如果未能解决你的问题,请参考以下文章
redis python 操作 Python操作Redis数据库
Python操作Redis数据库—redis库(可直接使用的模板通用操作)