操作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自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

如何利用redis来进行分布式集群系统的限流设计

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作