代码编织梦想

32e9999525144885bd9b2dfd864c0419.gif#pic_center

前言
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS - 全栈 赋能的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 MVP 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


专栏系列(点击解锁)学习路线(点击解锁)知识定位
🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
数据库开发实战篇 掌握关系型与非关系数据库知识,提升数据库实战开发能力。
爬虫入门与实战 更新中
数据分析篇 更新中
前端入门+flask 全栈篇 更新中
django+vue全栈篇 更新中
拓展-人工智能入门 更新中
网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。

在这里插入图片描述

在上一章节,针对 redis-py 这个模块我们也算是入门了,感觉还是挺简单的。接下来就继续学习 redis-py 这个模块的针对 字符串数据类型的一些常用操作。



🐳 字符串数据的简单读写操作


  • 简单的示例:(与之前在 redis 中执行的指令基本上相同)

# 这里的 r 代表的就是创建的连接的意思

r.set("name", "Neo")		# 在 redis 中设置一个字符串使用的就是 set 指令,在 redis-py 中同样如此。
r.set("age", "18")
r.set("sex", "man")
name = r.get("name").decode("utf-8")	# 利用 get 指令可以获得 key 为 name 的记录;(需要注意转码问题,不转码情况下可能会出现乱码)
print(name)

  • example.py 模块演示案例如下:

# coding:utf-8


import redis
from redis_db import redis_Pool     # 导入 redis_db模块 的 redis_Pool


"""
创建 redis 连接
"""
con = redis.Redis(
    connection_pool=redis_Pool
)


"""
利用 redis-py 实现对字符串数据的简单读写操作(逻辑库 0)
"""
con.set("name", "Neo")		# 在 redis 中设置一个字符串使用的就是 set 指令,在 redis-py 中同样如此。
con.set("age", "18")
con.set("sex", "man")
name = con.get("name").decode("utf-8")  # 利用 get 指令可以获得 key 为 name 的记录;(需要注意转码问题,不转码情况下可能会出现乱码)
print(name)


"""
删除 redis 连接 (redis连接被删除后,会自动被 Python 的垃圾回收机制回收)
"""
del con

553bf2c6cc4648fc8fad82f331544d55.png#pic_center

cdb6fee7e19d4351aa8db3786919e221.png#pic_center

b838fa81c00740a5826162bbb41082ac.png#pic_center


🐳 字符串数据的删除操作


  • 在 redis 中可以通过 “del” 指令实现记录的删除,但是 “redis-py” 中并没有 “del” 函数,而是使用了 “delete” 这个函数,利用该函数达成删除记录的操作。示例如下:

con.delete("key","value")

  • 重点是第 26 行 - 第 29 行

# coding:utf-8


import redis
from redis_db import redis_Pool     # 导入 redis_db模块 的 redis_Pool


"""
创建 redis 连接
"""
con = redis.Redis(
    connection_pool=redis_Pool
)


"""
利用 redis-py 实现对字符串数据的简单读写操作(逻辑库 0)
"""
con.set("name", "Neo")		# 在 redis 中设置一个字符串使用的就是 set 指令,在 redis-py 中同样如此。
con.set("age", "18")
con.set("sex", "man")
name = con.get("name").decode("utf-8")  # 利用 get 指令可以获得 key 为 name 的记录;(需要注意转码问题,不转码情况下可能会出现乱码)
print(name)


"""
利用 redis-py 实现对字符串记录的删除操作
"""
con.delete("name", "sex")


"""
删除 redis 连接 (redis连接被删除后,会自动被 Python 的垃圾回收机制回收)
"""
del con

745f0d9fbb454fe5abc987e326cb6ab1.png#pic_center


🐳 字符串数据的多条记录写入操作


  • 在 redis 中,操作写入多个字符串的命令叫 “mset” ,在 “redis-py” 中依然使用 “mset” 写入多个字符串
  • 但是有一点需要注意的地方:在传入多个子串的参数时,必须以 “字典” 的格式传入。示例如下:

con.mset({"name": "Neo", "sex": "man", "phoneNo": "13312344321"})

  • 重点是第 32 行 - 第 35 行

# coding:utf-8


import redis
from redis_db import redis_Pool     # 导入 redis_db模块 的 redis_Pool


"""
创建 redis 连接
"""
con = redis.Redis(
    connection_pool=redis_Pool
)


"""
利用 redis-py 实现对字符串数据的简单读写操作(逻辑库 0)
"""
con.set("name", "Neo")		# 在 redis 中设置一个字符串使用的就是 set 指令,在 redis-py 中同样如此。
con.set("age", "18")
con.set("sex", "man")
name = con.get("name").decode("utf-8")  # 利用 get 指令可以获得 key 为 name 的记录;(需要注意转码问题,不转码情况下可能会出现乱码)
print(name)


"""
利用 redis-py 实现对字符串记录的删除操作
"""
con.delete("name", "sex")


"""
利用 redis-py 实现一次性写入多个字符串记录的操作
"""
con.mset({"name": "Neo", "sex": "man", "phoneNo": "13312344321"})


"""
删除 redis 连接 (redis连接被删除后,会自动被 Python 的垃圾回收机制回收)
"""
del con
3fd086983fd847ac899792910269d14e.png#pic_center

dbace5d1753c4eab95d06fd86235d2c3.png#pic_center


🐳 字符串数据的多条记录读取操作


  • 通过 “redis-py” 获得多个字符串记录的指令与 “redis” 一样,使用的都是 “mget” ,传入要获得的记录的 “key” 即可。
  • 需要注意的是,“redis-py” 模块的 “mget” 函数返回的数据类型是 “元组类型” 的。
  • 可以通过 for 循环的方式,从元组里取出元素输出到控制台。

  • 重点是第 38 行 - 第 44 行

# coding:utf-8


import redis
from redis_db import redis_Pool     # 导入 redis_db模块 的 redis_Pool


"""
创建 redis 连接
"""
con = redis.Redis(
    connection_pool=redis_Pool
)


"""
利用 redis-py 实现对字符串数据的简单读写操作(逻辑库 0)
"""
con.set("name", "Neo")		# 在 redis 中设置一个字符串使用的就是 set 指令,在 redis-py 中同样如此。
con.set("age", "18")
con.set("sex", "man")
name = con.get("name").decode("utf-8")  # 利用 get 指令可以获得 key 为 name 的记录;(需要注意转码问题,不转码情况下可能会出现乱码)
print(name)


"""
利用 redis-py 实现对字符串记录的删除操作
"""
con.delete("name", "sex")


"""
利用 redis-py 实现一次性写入多个字符串记录的操作
"""
con.mset({"name": "Neo", "sex": "man", "phoneNo": "13312344321"})


"""
利用 redis-py 实现一次性读取多个字符串记录的操作
"""
result = con.mget("name", "age", "sex", "phoneNo")

for userinfo in result:
    print(userinfo.decode("utf-8"))

"""
删除 redis 连接 (redis连接被删除后,会自动被 Python 的垃圾回收机制回收)
"""
del con
c4372cf88c8b48319d5f81c8ea79f43b.png#pic_center

这里是我们简单的实现了字符串数据的读写小栗子,还有 哈希表 的读写、 列表的读写等等,将在后续的章节为大家介绍。拜了个拜!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42250835/article/details/127019782

mysql报错 1142 - select command denied to user 'root_ssm'@'localhost' for table 'user'_我是曾老师的博客-爱代码爱编程_select command denied to user

错误信息的字面意思是:表“user”拒绝用户“root_ssm”@“localhost”的SELECT命令 ,很明显用户没有查看user表的权限,用管理员账号给他授权就行了   一、使用客户端授权(Navicat Premium 12) 1、使用root用户登陆mysql 2、新建查询,输入指令: use mysql; select * f

navicat mysql报错 1142 - select command denied to user ‘xxx‘@‘localhost‘ for table ‘user‘_calixz的博客-爱代码爱编程_mysql 1142

 话我就撂这儿了,只要你认真看完,你就能解决。 --- 2022年4月20日 阅读量都已经19586次了 重新看了一下这一篇解决方案,感觉写的还是有点冗长的, ​​​​​​​一句话总结就是:登录root账户,给你的子账户赋权。 --- 困了我一天一夜的问题终于解决了,问题也不知道是怎么产生的,点击“用户”或者修改“information_sch

Mysql Navicat连接时的错误 1142-create command denied to user×××-爱代码爱编程

使用Navicat与自定义用户连接,显示成功。但在后续为该用户创建新的database时,出现1044错误:数据库拒绝为自定义用户‘xiaozhan’创建database。 查了一些资料,都说是用户权限的问题,但在mysql中为该自定义用户修改权限也没有用,因此尝试使用root用户连接Navicat。现在Navicat中有两个用户(其中root用户可以显示

python rediscluster连接池_利用python操作redis-cluster-爱代码爱编程

In [8]: def redis_cluster(): ...: redis_nodes = [{'host':'192.168.100.60','port':7000}, ...: {'host':'192.168.100.60','port':7001}, ...: {'host':'192.168.100.60','port':7002}

mysql查询表时报1142_MySQL错误:#1142-拒绝用户的SELECT命令-爱代码爱编程

我在其中一台服务器上进行某些查询时遇到麻烦。在我测试过的所有其他地方,它都可以正常工作,但是在我要使用的服务器上,它无法正常工作。 关于以下SQL: SELECT facturen.id AS fid, projecten.id AS pid, titel, facturen.totaal_bedrag AS totaal, betaald

mysql 连接时报错1142,Navicat mysql报错 1142 - SELECT command denied to user 'xxx'@'localhost' for table 'us...-爱代码爱编程

话我就撂这儿了,只要你认真看完,你就能解决。 困了我一天一夜的问题终于解决了,问题也不知道是怎么产生的,点击“用户”或者修改“information_schema”的值就会提示错误,似乎是因为权限不足,错误入下图。 首先你要知道数据库的用户是怎么回事。每个数据库都有账号密码,连接特定的数据库需要对应的账号密码,这个很容易理解,PHP里的mys

python和redis交互读取redis插入的中文报编码错误-爱代码爱编程

python和redis交互读取redis插入的中文报编码错误 问题再现通过python的redis库于redis进行交互进行查询 redis\connection.py", line 131, in decode value = value.decode(self.encoding, self.encoding_errors)## 标题 U

mysql 授权用户cesuser 报错 1142 - select command denied to user ‘root‘@‘localhost‘ for table ‘user‘_meetlight的博客-爱代码爱编程

如果mysql 授权用户cesuser 报错 1142 - SELECT command denied to user 'root'@'localhost' for table 'user' 执行1-5即可 --1、查看root用户权限 show grants for root@'localhost'; --2、修改root用户权限 updat