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

如何做网站的搜索栏网站类的百度百科怎么做

如何做网站的搜索栏,网站类的百度百科怎么做,网站后台培训方案,百度灰色关键词排名前言 最近在学习《Redis应用实例》,这本书并没有讲任何底层,而是聚焦实战用法,梳理了 32 种 Redis 的常见用法。我的笔记在 Github 上,用 Jupyter 记录,会有更好的阅读体验,作者的源码在这里:h…

前言

最近在学习《Redis应用实例》,这本书并没有讲任何底层,而是聚焦实战用法,梳理了 32 种 Redis 的常见用法。我的笔记在
Github 上,用 Jupyter 记录,会有更好的阅读体验,作者的源码在这里:https://github.com/huangzworks/rediscookbook?tab=readme-ov-file 。

缓存二进制数据

除了缓存文本数据外,Redis 还经常被用于缓存二进制数据,如图片、视频、音频等。

Redis 存储二进制时比较特别,只需要在初始化 redis-py 客户端实例的时候让 decode-responses 为 False,也就是让返回的数据不自动进行解码,而是以二进制形式返回。如果存储图片后,不将 decode_responses 设置为 False,获取二进制数据的时候 redis-py 客户端会把它们解释为文本数据,会引发错误。

需要注意,没有办法单独对某个 GET 操作设置 decode-responses 为 False,所以如果 client 还有别的操作需要进行自动解码,只能新声明一个 client 来进行对二进制的操作。

"""
配置连接
"""
from redis import Redis# Redis连接配置
client = Redis(host='39.104.208.122', port=6379,decode_responses=False,  # 关闭自动解码ssl=False
)if client.ping():print("Redis连接成功")
else:print("Redis连接失败")
class BinaryCache:def __init__(self, client):self.client = clientdef set(self, name, path, ttl=None):"""根据给定的名字和文件路径,缓存指定的二进制文件数据。可选ttl参数用于设置缓存的生存时间。"""# 以二进制方式打开文件,并读取文件中的数据file = open(path, "rb")data = file.read()file.close()# 缓存二进制数据self.client.set(name, data, ttl)def get(self, name):"""获取指定名字的缓存内容,若缓存不存在则返回None。"""return self.client.get(name)
cache = BinaryCache(client)
cache.set("logo.png", "./logo.png")
print(cache.get("logo.png")[:10])
# 如果想看到照片,可以使用第三方库进行转换;或者用下面的方式将二进制保存为图片
with open("new_logo.png", "wb") as f:f.write(cache.get("logo.png"))

多说一嘴,我记得以前存图片还要用什么 Base64 进行转换,Base64 是干嘛的?

Base64 编码是从二进制值转换到某些特定字符的编码方式,这些特定字符一共 64 个,所以称作 Base64。为什么不直接传输二进制呢?而且即使 Base64 编码过的字符串最终也是二进制在网络上传输的。原因其实是二进制不兼容的问题。某些二进制值,在一些硬件上,比如在不同的路由器,老电脑上,表示的意义不一样,做的处理也不一样。但是 Base64 的 64 个字符(A-Z、a-z、0-9、+、/)是 ASCII 字符,在 ASCII 和 UTF-8 中编码一致,因此在大多数机器和软件上的行为相同,兼容性强。

它的过程:

图片的二进制数据 → Base64 编码 → ASCII 字符串。
ASCII 字符串 → Base64 解码 → 二进制数据 → 保存或显示为图片。
另外说一下,如果在 MySQL 中存储二进制,需要用到 BINARY,用于存储固定长度或可变长度的二进制数据;BLOB,适合存储大块二进制数据。存储的过程和 Redis 也是一样的,read 拿到二进制直接存。

http://www.dtcms.com/wzjs/831082.html

相关文章:

  • phpcms做装修网站手工制作小玩具
  • 做公司网站流程东营网站建设天锐科技
  • 网站下拉箭头怎么做的公司注册网络推广
  • 哪个网站做照片书最好wordpress wp_get_archives
  • 造纸公司网站建设谷歌搜索关键词排名
  • 环翠区网站建设oracle 网站开发
  • 网站落地页如何做wordpress可视化编辑器不显示
  • 手机建设银行官方网站三方物流网站建设
  • 北京建站公司做网站价格phpstudy怎么做网站
  • 不懂开发如何建设网站建设部网站在哪里看受理
  • 滁州网站设计html简单的个人网页代码
  • 网站建设的可行性要求品牌建设不
  • 深圳精品网站设计衣服网站建设规划书
  • 资讯网站策划怎么写网站建设中期报告
  • 建设网站是否需要一个主机网站title keywords
  • 网站开发软件中文版广西房地产网站建设
  • 深圳国税局深圳做网站公司网站域名授权
  • 娄底网站建设79ld营销型网站建设实训报告个人总结
  • 珠海建站智慧团建密码是什么
  • 天津高端网站申请商标注册需要什么资料
  • 做建筑材料的网站万网域名注册流程
  • 网站跟换域名二级域名备案
  • 个人网站怎么做有创意全国知名vi设计公司
  • 做教育网站用什么颜色锦江会员通app下载
  • 制作网站先做前端还是后端wordpress搜索框选择分类
  • 陕西省建设厅网站劳保统筹基金宏发建设有限公司网站
  • 吉林省高等级公路建设局网站网站做多长时间才会成功
  • 做游戏网站赚钱么鑫菲互动网站建设公司
  • 网站的建站方案海外短视频怎么下载
  • 外贸商城网站制作公司网站开发 税率