当前位置: 首页 > news >正文

烟台住房和城乡建设厅网站it运维是什么

烟台住房和城乡建设厅网站,it运维是什么,熟悉网页设计人机交互实验报告,wordpress 韩国 主题文章目录前言一、准备二、原理剖析三、编写简易Redis客户端总结前言 Redis 是我们在开发过程中经常会用到的内存数据库#xff0c;尤其是在Python的第三方模块Redis-py的支持下#xff0c;在Python中使用Redis及其方便。 但是在有些情况下#xff0c;我们无法使用像Redis-… 文章目录前言一、准备二、原理剖析三、编写简易Redis客户端总结前言 Redis 是我们在开发过程中经常会用到的内存数据库尤其是在Python的第三方模块Redis-py的支持下在Python中使用Redis及其方便。 但是在有些情况下我们无法使用像Redis-py这样的第三方模块比如QMT这时候就需要自己实现一个简易版的Redis-py了。 本文将教大家如何用20行代码制作一个简易版的Redis客户端不过仅以GET命令为例其他命令的用法也差不多。 一、准备 开始之前你要确保Python和pip已经成功安装在电脑上如果没有可以访问这篇文章超详细Python安装指南 进行安装。 (可选1) 如果你用Python的目的是数据分析可以直接安装AnacondaPython数据分析与挖掘好帮手—Anaconda它内置了Python和pip. (可选2) 此外推荐大家用VSCode编辑器它有许多的优点Python 编程的最好搭档—VSCode 详细指南。 二、原理剖析 其实通过Redis GET返回的数据就是一些字符串这些字符串的格式如下 b$466\r\n\x80\x04\x95\xc7\x01\x00\x00\x00\x00\x00\x00]\x94(\x8c\x06000957\x94\x8c\x06002031\x94\x8c\x06000899\x94\x8c\x06300339\x94\x8c\x06002090\x94\x8c\x06601016\x94\x8c\x06002547\x94\x8c\x06002863\x94\x8c\x06002591\x94\x8c\x06002514\x94\x8c\x06000629\x94\x8c\x06002204\x94\x8c\x06000544\x94\x8c\x06002374\x94\x8c\x06000821\x94\x8c\x06000625\x94\x8c\x06000158\x94\x8c\x06002703\x94\x8c\x06002866\x94\x8c\x06600686\x94\x8c\x06002796\x94\x8c\x06300598\x94\x8c\x06002101\x94\x8c\x06002454\x94\x8c\x06000970\x94\x8c\x06000631\x94\x8c\x06002121\x94\x8c\x06600348\x94\x8c\x06600996\x94\x8c\x06002080\x94\x8c\x06002194\x94\x8c\x06002466\x94\x8c\x06300663\x94\x8c\x06002616\x94\x8c\x06000665\x94\x8c\x06600992\x94\x8c\x06300750\x94\x8c\x06300059\x94\x8c\x06002047\x94\x8c\x06002997\x94\x8c\x06000521\x94\x8c\x06002594\x94\x8c\x06002261\x94\x8c\x06002125\x94\x8c\x06002085\x94\x8c\x06002168\x94\x8c\x06002665\x94\x8c\x06002523\x94\x8c\x06603067\x94\x8c\x06002432\x94e.\r\n可见其是一个bytes字符串开头$xxx是此数据的长度\r\n作为分割符后面紧跟着的就是你的原始数据内容最后才是\r\n作为结尾。 根据这个返回内容我们就可以制作一个简易的客户端用于在无法引用第三方模块的环境中接收Redis信息。 三、编写简易Redis客户端 与Redis通信我们只需要用Python原生的socket模块即可。 import socket import pickleREDIS_HOST 127.0.0.1 REDIS_PORT 6379 # 创建 socket 对象 s socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务指定主机和端口 s.connect((REDIS_HOST, REDIS_PORT)) s.close()这样就与你的Redis服务器连接上了接下来只需要向socket发送你的命令并receive即可获取对应的内容 import socket import pickleREDIS_HOST 127.0.0.1 REDIS_PORT 6379 # 创建 socket 对象 s socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务指定主机和端口 s.connect((REDIS_HOST, REDIS_PORT)) # GET 某个 KEY 的内容 s.send(GET RQB_keys_20220719 \r\n.encode(utf-8)) # 接收小于 1M 的数据 msg s.recv(1024 * 1024) s.close() print(msg) # b$466\r\n\x80\x04\x95\xc7\x01\x00\x00\x00\x00\x00\x00]\x94(\x8c\x06000957\x94\x8c\x06002031\x94\x8c\x06000899\x94\x8c\x06300339\x94\x8c\x06002090\x94\x8c\x06601016\x94\x8c\x06002547\x94\x8c\x06002863\x94\x8c\x06002591\x94\x8c\x06002514\x94\x8c\x06000629\x94\x8c\x06002204\x94\x8c\x06000544\x94\x8c\x06002374\x94\x8c\x06000821\x94\x8c\x06000625\x94\x8c\x06000158\x94\x8c\x06002703\x94\x8c\x06002866\x94\x8c\x06600686\x94\x8c\x06002796\x94\x8c\x06300598\x94\x8c\x06002101\x94\x8c\x06002454\x94\x8c\x06000970\x94\x8c\x06000631\x94\x8c\x06002121\x94\x8c\x06600348\x94\x8c\x06600996\x94\x8c\x06002080\x94\x8c\x06002194\x94\x8c\x06002466\x94\x8c\x06300663\x94\x8c\x06002616\x94\x8c\x06000665\x94\x8c\x06600992\x94\x8c\x06300750\x94\x8c\x06300059\x94\x8c\x06002047\x94\x8c\x06002997\x94\x8c\x06000521\x94\x8c\x06002594\x94\x8c\x06002261\x94\x8c\x06002125\x94\x8c\x06002085\x94\x8c\x06002168\x94\x8c\x06002665\x94\x8c\x06002523\x94\x8c\x06603067\x94\x8c\x06002432\x94e.\r\n请注意recv里你设定的大小会直接占用内存所以请设定一个适宜的数目或者从返回值中的美元符后的数字判断你需要接收的数据大小。 比如第一次请求你只接收1024个字节拿到 $xxx 这个长度后重新send一次命令再 s.recv(xxx) 长度。 上述例子中得到的内容是redis的格式我们需要把\r\n给去除掉并只取中间的数据便是我们存入redis的原始数据。 import pickle def get_msg(msg): msg_new msg.split(b\r\n)[1] msg pickle.loads(msg_new) return msg 因为我的原始内容是pickle格式因此我在取出原始数据后使用pickle.loads便能拿到我想要的内容完整代码如下 import socket import pickleREDIS_HOST 127.0.0.1 REDIS_PORT 6379 # 创建 socket 对象 s socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务指定主机和端口 s.connect((REDIS_HOST, REDIS_PORT)) # GET 某个 KEY 的内容 s.send(GET RQB_keys_20220719 \r\n.encode(utf-8)) # 接收小于 1M 的数据 msg s.recv(1024 * 1024) s.close()def get_msg(msg):msg_new msg.split(b\r\n)[1]msg pickle.loads(msg_new)return msgprint(get_msg(msg))效果如下 [‘000957’, ‘002031’, ‘000899’, ‘300339’, ‘002090’, ‘601016’, ‘002547’, ‘002863’, ‘002591’, ‘002514’, ‘000629’, 00 在QMT等会限制第三方模块的软件中使用这样的方式访问Redis就不会再遇到白名单的限制了。 总结 我们的文章到此就结束啦如果你喜欢今天的Python 实战教程请持续关注Python徐浪老师大讲堂
http://www.hkea.cn/news/14523032/

相关文章:

  • 蓝田微网站建设抖音代运营 广州
  • 上海地区网站建设哪个网站科技新闻好
  • 如何建立学校网站基于网站的app开发
  • v2017网站开发福州百度快速优化排名
  • 家政类网站开发成本南京网站设计平台
  • 如何看网站空间问题信用湘潭网站
  • 家庭电脑做网站沂水网站设计
  • 网站建设过程和准备阶段网络营销的方法有哪些方式
  • 公司搭建一个网站需要多少钱江苏智能网站建设流程
  • 在线教育网站建设方案渭南经开区
  • 网站做一个多少钱建设网站公司前景
  • 有没有专门做中式的设计网站网络运维实习报告
  • 企业网站建设报价方案wordpress 新网页打开
  • 建设银行预约纪念钞网站wordpress搬家 打开404
  • 网站新闻 写法wordpress教程 下载
  • 建设行网站修改电话网站怎么做安全
  • 网站可以做网站广告怎么给钓鱼网站做防红
  • 重庆城乡规划和建设局网站360安全浏览器官网入口
  • 中国空间站有几个舱段建站公司生存难
  • 哪些公司可以建设网站上海技术公司做网站
  • 网站建设 0551如何制作应用软件
  • 网站开发分为小程序平台推广
  • 三网合一网站报价手机网页游戏大全
  • 快速网站推广公司分享网络营销方式
  • 男女做暖暖的视频试看网站经济新闻最新消息财经
  • 三亚网络网站建设wordpress修改之前发布文章的id
  • 网站开发过程前端后端上海app开发定制公司
  • 苏州网站建设制作服务商如何快速做网站
  • 上海松江区建设局官方网站百度推广开户公司
  • 怎样建设小游戏网站企业网站模板中文