首页 > 其他分享 >zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存

zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存

时间:2024-08-30 18:21:26浏览次数:12  
标签:缓存 req resp cache json headers zdppy

启动服务

import zdppy_api as api
import zdppy_cache

key1 = "admin"
key2 = "admin"

app = api.Api(routes=[
    *zdppy_cache.zdppy_api.cache(key1, key2, api)
])

if __name__ == '__main__':
    import zdppy_uvicorn

    zdppy_uvicorn.run(app, host="0.0.0.0", port=8888)

基于用户的缓存隔离

测试代码:

import req

# 用户1设置缓存
headers = {
    "key1": "zhangdapeng",
    "key2": "zhangdapeng520",
}
resp = req.post("http://127.0.0.1:8888/zdppy_cache", json={
    "key": "name",
    "value": "张三"
}, headers=headers)
print(resp.json())

resp = req.get("http://127.0.0.1:8888/zdppy_caches", json={}, headers=headers)
print(resp.json())

resp = req.get("http://127.0.0.1:8888/zdppy_cache", json={"key": "name"}, headers=headers)
print(resp.json())

# 用户2设置缓存
headers2 = {
    "key1": "zhangdapeng1",
    "key2": "zhangdapeng521",
}
resp = req.post("http://127.0.0.1:8888/zdppy_cache", json={
    "key": "name",
    "value": "张三333"
}, headers=headers2)
print(resp.json())
resp = req.get("http://127.0.0.1:8888/zdppy_cache", json={"key": "name"}, headers=headers2)
print(resp.json())
resp = req.get("http://127.0.0.1:8888/zdppy_cache", json={"key": "name"}, headers=headers)
print("用户1相同的key", resp.json())

不同的用户,相同的key,得到的是不同的值。
在这里插入图片描述

超级管理员可以管理普通用户的缓存

测试代码:

import req

# 用户1设置缓存
headers = {
    "key1": "zhangdapeng",
    "key2": "zhangdapeng520",
}
resp = req.post("http://127.0.0.1:8888/zdppy_cache", json={
    "key": "name",
    "value": "张三"
}, headers=headers)
print(resp.json())
resp = req.get("http://127.0.0.1:8888/zdppy_cache", json={"key": "name"}, headers=headers)
print(resp.json())

# 通过管理员获取用户缓存
headers2 = {
    "key1": "admin",
    "key2": "admin",
    "username": "zhangdapeng",  # 指定要操作的用户
}
resp = req.get("http://127.0.0.1:8888/zdppy_cache/manage", json={
    "key": "name",
}, headers=headers2)
print(resp.json())

# 通过管理员删除用户缓存
resp = req.delete("http://127.0.0.1:8888/zdppy_cache/manage", json={
    "key": "name",
}, headers=headers2)
print(resp.json())

# 用户自己查询缓存
resp = req.get("http://127.0.0.1:8888/zdppy_cache", json={"key": "name"}, headers=headers)
print(resp.json())

输出结果:
在这里插入图片描述

标签:缓存,req,resp,cache,json,headers,zdppy
From: https://blog.csdn.net/qq_37703224/article/details/141646833

相关文章

  • redis-缓存崩溃
    缓存崩溃作者:w08eredis实战之各种崩溃雪崩击穿穿透以及预热缓存雪崩回答话术缓存雪崩是应用系统指在某个时间点上,缓存中的大部分数据同时失效,导致大量的请求直接访问底层数据库或后端服务,从而造成数据库负载剧增,甚至导致数据库崩溃的情况。通常情况下,缓存中的数据会......
  • 使用devpi-server搭建pypi本地缓存服务器
    使用缓存机制可以显著减少对外部源的请求量,从而提高下载速度,并降低被源站封禁的风险。下面详细解释如何在本地服务器上设置和使用pip缓存机制。缓存机制的基本原理缓存机制的原理是在本地服务器上保存已经下载过的Python包,当其他服务器请求同样的包时,本地服务器可以直接提供,......
  • 怎么用cmd命令清除系统垃圾,怎么清理C盘缓存垃圾
    使用CMD命令清除系统垃圾和C盘缓存垃圾是提升电脑性能的有效方法。以下是一些常用的CMD命令及其操作步骤:一、使用cleanmgr命令1.打开CMD命令提示符:按下Win+R组合键,打开运行对话框。输入cmd并按回车键,打开命令提示符窗口。2.运行磁盘清理工具:在命令提示符窗口中输入cleanm......
  • NuGet缓存全局文件夹占用空间较大,系统盘清理
    查看https://learn.microsoft.com/zh-cn/nuget/consume-packages/managing-the-global-packages-and-cache-foldershttps://learn.microsoft.com/zh-cn/nuget/consume-packages/configuring-nuget-behavior 查看所有类别的缓存文件夹路径:dotnetnugetlocalsall--list......
  • 【jvm】栈顶缓存技术
    目录1.说明2.技术背景3.技术原理4.应用场景5.优势与局限5.1优势5.2局限1.说明1.栈顶缓存技术(Top-of-StackCaching,简称ToS)。2.是一种在计算机体系结构中用于提高指令执行性能的优化技术。3.通常与流水线处理器(pipelining)相关,旨在减少数据冒险(datahazar......
  • 缓存解决方案。Redis 和 Amazon ElastiCache 比较
        欢迎来到雲闪世界。Redis和AmazonElastiCache等缓存解决方案是通过将频繁访问的数据存储在内存中来提高应用程序性能的热门选择。让我们从实施简单性、性能、成本和维护方面对它们进行比较。实施简单设置Redis需要在基础设施或云实例上安装和配置Redis服......
  • AdornerDecorator的CacheMode绑定和windows锁屏导致TableControl锁死问题
    有个wpf项目,从.netframework4.0刚出来就在用,现在慢慢的系统从win xp到win10了。升级到.net8后发现一个怪异的现象,就是当windows按Win+L锁屏后,某个TableControl里面的TableItem无法激活了,就和Disable了一样的现象。经过各种尝试,最终逐步删代码,发现一个子控件里面的依据代码删......
  • Nginx负载均衡中的缓存过期配置:策略与实现
    在Nginx负载均衡的高级应用中,合理配置缓存过期策略对于提升网站性能和保证内容的新鲜度至关重要。缓存过期意味着存储在代理缓存中的响应在一定时间后将被视为过时,并在下一次请求时从原始服务器重新获取。本文将详细介绍如何在Nginx中配置缓存过期,包括缓存机制的理解、过期......
  • 缓存策略
    我们都知道,提高系统性能的最简单也最流行的方法之一其实就是使用缓存。我们引入缓存,相当于对数据进行了复制。每当系统数据更新时,保持缓存和数据源(如MySQL数据库)同步至关重要,当然,这也取决于系统本身的要求,看系统是否允许一定的数据延迟。在这篇文章里,我想给你们介绍最常见的几......
  • 缓存介绍
    从业务层面上的堆数据库下性能瓶颈的解决方案:分库分表、读写分离程序员修神之路--略懂数据库集群读写分离而已缓存缓存(Cache):本质是数据交换的一段缓冲区,也可以称为一种存储数据的组件,主要用于减小数据交换双方速度不匹配的问题。缓存在计算机世界里是一个常见并且不可忽......