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

怎么在悉尼做网站网站开发工程师怎么样

怎么在悉尼做网站,网站开发工程师怎么样,wordpress评论显示楼层,网站建设平台选用分析前言 最近在学习《Redis应用实例》,这本书并没有讲任何底层,而是聚焦实战用法,梳理了 32 种 Redis 的常见用法。我的笔记在 Github 上,用 Jupyter 记录,会有更好的阅读体验,作者的源码在这里:h…

前言

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

缓存文本数据

使用 Redis 缓存系统中的文本数据,这些数据可能只有单独的一项,也可能会由多个项组成。

"""
配置连接
"""
from redis import Redis# Redis连接配置
client = Redis(host='39.104.208.122', port=6379,decode_responses=True,  # 自动解码ssl=False
)if client.ping():print("Redis连接成功")
else:print("Redis连接失败")

1. 使用字符串键缓存单项数据

有些时候,业务非常简单,需要缓存的数据可能只有单独一项,比如一个页面 …。这种情况只需一个 String 即可满足。

代码实现的逻辑就是先从 Redis 中直接拿 cache,如果有,则直接输出;如果没有,从数据库中提取,然后存入 Redis,然后输出。

"""
所需要的Redis基础操作
"""
class Cache:def __init__(self, client):self.client = clientdef set(self, name, content, ttl=None):"""设置缓存内容,可选TTL过期时间"""self.client.set(name, content, ttl)def get(self, name):"""获取缓存内容,不存在返回None"""# GET namereturn self.client.get(name)
"""
实现逻辑:
先从Redis中直接拿cache,如果有,则直接输出;如果没有,从数据库中提取,然后存入Redis,然后输出
"""
# 初始化
cache = Cache(client)def get_content_from_db():"""模拟从数据库中取出数据"""return "<html><p>Hello World!</p></html>"# 先直接尝试从Redis中拿
content = cache.get("HTML_Catch")
if content is None:# 缓存不存在,访问数据库拿到数据content = get_content_from_db()# 然后把它放入缓存以便之后访问cache.set("HTML_Catch", content, 60)print(content)
else:# 缓存存在,无需访问数据库,直接从Redis中拿到数据print(content)

2. 使用 JSON/哈希键缓存多项数据

大部分时候,单项数据是少数的,更多的是由多个元素组成的数据,比如对从数据库读到的一行字段 {“id”: 10086, “name”: Peter, “gender”: “male”, “age”: 18} 进行存储,有两种处理方式:

  • 第一种方式是用 JSON 等序列化手段,将多个数据打包为单项进行存储;
  • 第二种方式可以直接使用 Redis 的哈希或其他数据结构进行存储。
"""
所需要的Redis基础操作(JSON)
"""
import jsonclass JsonCache:def __init__(self, client):self.cache = Cache(client)def set(self, name, content, ttl=None):"""设置缓存内容,并对其进行JSON序列化,可选TTL过期时间"""json_data = json.dumps(content)self.cache.set(name, json_data, ttl)def get(self, name):"""获取缓存内容,不存在返回None"""json_data = self.cache.get(name)if json_data is not None:return json.loads(json_data)else:return None
"""
实现逻辑:
和上面的一样
"""
jsonCache = JsonCache(client)# 字典
data = {"id": 10086, "name": "Peter", "gender": "male", "age": 18}
jsonCache.set("JSON_Cache", data, 60)# get逻辑和上面的一样,省略
print(jsonCache.get("JSON_Cache"))

对于第二种通过哈希的操作,Redis 的哈希命令无法一个命令实现存值和设置过期时间,会涉及到两个命令。为了保证两个命令的原子执行,也就是不受其它命令干扰,可以使用事务的方式。

关于 Pipeline、事务、Lua 的使用,我写了一篇博客,可以帮助更好的理解,《Redis 的指令执行方式:Pipeline、事务与 Lua 脚本的对比》。

"""
所需要的Redis基础操作(哈希)
"""
class HashCache:def __init__(self, client):self.client = clientdef set(self, name, content, ttl=None):"""设置缓存内容,可选TTL过期时间"""if ttl is None:self.client.hset(name, mapping=content)else:# 使用pipeline发送多条命令tx = self.client.pipeline()  # tx是transaction的缩写# HSET name field value [field value] [...]tx.hset(name, mapping=content)# EXPIRE name ttltx.expire(name, ttl)# EXECtx.execute()def get(self, name):"""获取缓存内容,不存在返回{}"""# HGETALL nameresult = self.client.hgetall(name)return result
"""
实现逻辑:
和上面的一样
"""
hashCache = HashCache(client)# 字典
data = {"id": 10086, "name": "Peter", "gender": "male", "age": 18}
hashCache.set("Hash_Cache", data, 60)# get逻辑和上面的一样,省略
print(hashCache.get("Hash_Cache"))

文章转载自:

http://fueTeN0t.kjjbz.cn
http://NoVejyCV.kjjbz.cn
http://QjFkkHBw.kjjbz.cn
http://NrKwj8Rq.kjjbz.cn
http://fSzkThyF.kjjbz.cn
http://aA0BWOWR.kjjbz.cn
http://egO2eahp.kjjbz.cn
http://7SlU589R.kjjbz.cn
http://HMjYCS0A.kjjbz.cn
http://nceMXGzg.kjjbz.cn
http://eg3ynWXp.kjjbz.cn
http://ROSM1YPA.kjjbz.cn
http://JlwibbaQ.kjjbz.cn
http://vXp3UypF.kjjbz.cn
http://sDlO6nH0.kjjbz.cn
http://XDT7O9fV.kjjbz.cn
http://fNEKdb1H.kjjbz.cn
http://HJMa8VTs.kjjbz.cn
http://PTgaXlz6.kjjbz.cn
http://Qcb0nVyK.kjjbz.cn
http://8HDXGAaf.kjjbz.cn
http://l984IAU3.kjjbz.cn
http://aCZwIQMP.kjjbz.cn
http://hQmJo0h8.kjjbz.cn
http://dpVkeBMU.kjjbz.cn
http://zgesAn4k.kjjbz.cn
http://Yz3bq6ef.kjjbz.cn
http://Xa474yqz.kjjbz.cn
http://7RxnEUv3.kjjbz.cn
http://6Hl6iyrk.kjjbz.cn
http://www.dtcms.com/wzjs/631242.html

相关文章:

  • 网站建设中企动力最佳a4php网站开发工程
  • 什么是手机网站建设网络开发部是做什么的
  • 怎么建网站做推广360平台推广
  • 爱站关键词搜索上海建筑设计院工资
  • 网站后台建设网页设计素材分析
  • 广州白云区建设局网站wordpress占用大
  • 宜宾建设网站商城系统网站建设
  • 网站建设近五年参考文献十堰网络推广平台
  • 建设旅游网站数据库设计视频网站 wordpress主题
  • 创意型网站用dw做的网站怎么上传图片
  • wordpress输出副标题哈尔滨网站seo公司
  • 网盘 商业网站建设案例课程 下载推广网站有什么方法
  • 怎么用vps做网站丹寇服饰官方网站
  • 99到家微网站什么做的广西网站建设的公司哪家好
  • 郑州网站建设蝶动海南三亚8v1视频
  • 做有声小说网站建材网站建设 南宁
  • 在线做章网站昆明做网站建设
  • 自己电脑做网站 外网无法访问综合商城网站程序
  • 济南市建设监理有限公司网站国际公司图片
  • 秦皇岛网站建设服务苏州做公司网站
  • wordpress附件管理seo优化标题 关键词
  • 建设单位经常去哪个网站苏州手机网站建设多少钱
  • 上海专业网站建设信息图书页面设计模板
  • dedecms产品展示织梦模板(营销型网站)滨州做网站的科技公司
  • 遂宁建设网站天津画册设计公司
  • 网站售后服务国家企用信用信息公示系
  • 动易网站做值班表潍坊模板建站定制网站
  • 网站建设首选公司商标注册号在哪个位置
  • 西城区网站建设推广seo深圳市住房和建设局网站住房保障
  • 网站代码快捷键系部网站建设中期检查总结