Python学习笔记(十九)—redis的操作
Redis是一个非关系型数据库,它没有数据表、没有SQL语句;数据值的存储是以K-V的形式来存储的。我们可以使用redis图形化工具来操作redis也可以使用Python来对其进行操作。
一、使用工具操作redis
1、安装RedisDesktopManager这个软件
软件的安装不在介绍,直接傻瓜式安装即可
2、安装完成后打开后如下图界面,点击connect
3、配置完成后再左边框,你可以看到自己配置的数据库连接,点击进入数据库,显示该下面可以操作的库,默认在db0库里面
4、选择db1库右击,给出坦克,选择Add new key 可以添加一个数据
5、添加内容的删除
注意:上图右上角的TTL值代表的是这个数据在内存中存在的时间,如果等于-1表示永久生效,如果为其它则表示在固定的时间内生效(单位秒)
6、添加内容的修改,也是如上图,在value上直接修改,修改完成后点击保存即可。
7、在创建的Test_Redis上右击,选择console进入DOS页面也可以直接操作
Test_Redis:0>select 1 切换当前的库
Test_Redis:1>set age 19 给当前的库添加数据
Test_Redis:1>get age 获取当前key为age的value值
Test_Redis:1>set python:test 123 在当前库里面添加一个名为Python的文件,文件下边有名称为:Python:test,value值为123的一条数据
二、使用Python操作redis
针对string类型的数据的操作
1、添加、修改数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379 r.set('sex','男') #添加数据
r.set('sec','女') #修改数据
r.set('name','这是一个测试!',60) #新增和修改数据k-v-失效时间,默认-1,永远生效;60代表一分钟内生效;
2、读取数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,db=1) #连接redis,,默认值port=6379 res = r.get('sex').decode() #获取key=sex的value值;且获取的结果是一个二进制类型的数据,所以需要decode转成字符串类型的数据 print(res)
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379 res = r.get('sex') #获取key=sex的value值;且获取的结果是一个二进制类型的数据,所以需要decode转成字符串类型的数据 print(res)
注意:如果连接数据库的时候加入了参数decode_responses=True,那么在读取数据的时候就不需要在进行转码操作
3、删除数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379 r.delete('sex1') #删除key=sex1的value值
4、删除所有的数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379 r.flushdb() #删除这个数据库里所有的key
5、其它操作
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379 r.set('java:test','JAVA-language') #在数据库中添加了一个名词为JAVA的文件夹,文件夹下有数据key:java:test,value:JAVA-language print(r.keys()) #获取所有key print(r.keys('*a*')) #获取所有key中包括a字母的key
import redis #导入模块 ip = '1.1.1.1' password = 'abcdef' r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379 #读取所有数据库中key的值 key_list = [] for i in r.keys(): key_list.append(r.get(i)) print('key:%s,value:%s'%(i,r.get(i))) print(key_list)
针对哈希类型的数据的操作
hash类型的数据实际上就是一个二层嵌套的字典,如下:
1 2 3 4 | session = { "name" :{ 'sex' : 18 , 'age' : 19 }, "add" :{ 'sex' : 20 , 'age' : 21 } } |
1、增加、修改数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcde' r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379 r.hset('syz_stus','test','21345') #存储hash类型的数据的是格式:K-k-v,如上面的格式 ,添加hash类型数据 r.hset('syz_stus','test','哈哈哈') #数据hash类型数据值
2、读取数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcde' r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379 res = r.hget('syz_stus','test') #获取某一个小key的值 res1 = r.hgetall('syz_stus') #以字典的格式获取到大K里面所有的数据,格式是二进制类型 print(res,res1)
3、删除数据
import redis #导入模块 ip = '1.1.1.1' password = 'abcde' r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379 r.hdel('syz_stus','test') #删除指定的小K的数据 r.delete('syz_stus') #删除整个大K的所有数据
4、循环操作获取所有hash类型数据的值
import redis #导入模块 ip = '1.1.1.1' password = 'abcde' r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379 res = r.hgetall('syz_stus') #以字典的格式获取到大K里面所有的数据,格式是二进制类型 print(res) new = {} for k,v in res.items(): new[k] = v print('============') print(new)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
2018-03-25 Python学习笔记(七)—字典的学习
2018-03-25 Python学习笔记(六)—元组的操作
2018-03-25 Python学习笔记(五)—列表的学习
2018-03-25 Python学习笔记(四):字符串的学习