操作redis
Posted hwtfamily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作redis相关的知识,希望对你有一定的参考价值。
redis
redis 也是一个数据库
关系型数据库:mysql、oracle、sql server、db2、sqlite
以上数据库通过sql操作,而且数据存在磁盘上
非关系型数据库:mongodb、redis
没有表结构,没有sql
获取数据用:get(‘k‘)
插入数据用:set(‘xx‘)
redis数据全部都是存在内存里面。
redis本身性能是非常好的,每秒支持30w次的读写。
(1)连接数据库
r = redis.Redis(host=‘ip‘,password=‘密码‘,db=数据库,port=6379(默认端口号))
(2)操作数据库:
增:r.set(‘key‘,‘value‘)
删:r.delete(‘key‘)
改:r.set(‘key‘,‘value‘)#修改也是用set
查:r.get(‘key‘)#用get获取数据,获取的数据为bytes类型,需要通过decode解码
# s=‘呵呵‘
# s.encode() #把字符串转成二进制
# hwt = b‘sdfsdfsdf‘
# hwt.decode() #把bytes类型转成字符串
(3)string类型
#增删改查 r.set(‘niuhanyang‘,‘双鱼座‘) #数据库里面新增一个值 #修改也是set r.delete(‘niuhanyang‘) r.setex(‘python_123‘,‘哈哈哈‘,20) #设置key的失效时间,最后这个参数是秒 r.set(‘hwt‘,‘你好‘) hwt = r.get(‘hwt‘) print(r.get(‘hwt‘).decode()) print(r.keys(‘*xxx*‘))#获取到所有关于XXX的key print(r.get(‘sdfsdf‘)) r.set(‘天蝎座:mpp‘,‘呵呵呵‘)# print(r.get(‘天蝎座:mpp‘).decode()) #上面操作都是针对 string类型 # for k in r.keys(): #删除所有的key # r.delete(k)
(4)哈希类型 hash 嵌套字典
# 哈希类型 hash 嵌套字典 r.hset(‘stu_info‘,‘刘伟‘,‘1m8 100w存款‘) r.hset(‘stu_info‘,‘张流量‘,‘猛男‘) r.hset(‘stu_info‘,‘董春光‘,‘美男子‘) r.hset(‘stu_info‘,‘gyx‘,‘美男子‘) print(r.hget(‘stu_info‘,‘张流量‘).decode()) #指定大key和小key获取对应的数据 print(r.hgetall(‘stu_info‘)) #获取里面所有的k和-v 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‘))
小练习:
#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=‘ip‘,password=‘密码‘,db=1,port=6379) conn = pymysql.connect(host=‘ip‘,user=‘jxz‘,passwd=‘密码‘,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)) cur.close() conn.close()
以上是关于操作redis的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程