自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 问答 (2)
  • 收藏
  • 关注

原创 Redis缓存策略之缓存击穿

这种方法的优点在于,通过使用互斥锁和异步构建缓存的方式,系统可以在后台进行数据的重构,而不会阻塞其他线程的查询请求。缓存击穿[7]也称热点Key问题,是指缓存中的某个数据过期或者被删除,而此时有大量的并发请求查询这个数据,导致这些请求直接落到后端存储上,增加了存储的负载。使用 setIfAbsent 操作,尝试在 Redis 中设置键值对,如果该键不存在(即成功获取锁),则将键的值设置为 "1",并设置过期时间为 10 秒。获取锁后,线程一开启一个新的线程(线程二),该线程负责进行以前的重构数据的逻辑。

2024-01-23 12:13:19 1160 2

原创 Redis缓存策略之缓存穿透

重新运行项目,如下图所示,访问URL:local:8080/api/shop/0,由于数据库中id没有0,所有这个url是不存在的,因此当缓存和数据库中都没有该数据的时候,数据库会创建一个空对象并放在缓存里面,并且返回一个不存在的信息。②如果Redis中查询到的JSON数据为空即’ ’(这里的空值是数据库写入缓存的空对象),但不为 null,则返回一个错误信息表示商店信息不存在。如下图,再次访问此URL,这一次直接从缓存中读取到该Key的Value值,发现为空后,直接返回不存在的信息。

2024-01-16 16:09:26 1408 1

原创 Redis缓存策略之缓存和数据库的一致性

小概率的情况下,比如在线程一,查缓存时刚好没有数据,于是到数据库查到了数据,在此之后,又有一个线程二在更新数据,它先更新数据库就删除缓存,此时缓存数据依然没有,线程二删完缓存后,线程一写入缓存,线程一写入的是以前的数据,而线程二更新了数据,导致了不一致性,但是这种情况概率很低,线程一在查询数据库到写入缓存所用时间是非常小的,很难在穿插于另一个进程的更新操作。当数据更新时,保证数据库和缓存的一致性,会遇到是先删除缓存,再操作数据库还是先操作数据库,再删除缓存的问题。对于动态数据,可以考虑LRU或LFU策略。

2024-01-16 00:06:04 1064 1

原创 Redis缓存实现

然后查询缓存,构建了一个Redis缓存的键(key),格式为cache:shop:后跟商铺的ID,这里是cache:shop:1,然后尝试从Redis中查询该商铺的缓存数据。通过以上案例初步实现了标准的Redis缓存技术,即查询数据库之前先查询缓存,如果缓存数据存在,则直接从缓存中返回,如果缓存数据不存在,再查询数据库,然后将数据存入redis。当第二次访问该页面时,通过游览器开发者工具可以看到访问该网络包,如图,耗时47毫秒,可以得出,客户端是从缓存数据库中得到的信息,因此使用的时间大大减少。

2024-01-15 23:42:33 2550 1

原创 Linux之进程管理

由操作系统相关知识可知,进程是系统资源分配的基本单位,而且子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,子进程有了独立的地址空间。于是父进程执行if (i > 0)段代码,输出just 1 process.这句话,然后调用wait函数,使父进程进入睡眠状态,当子进程终止时被唤醒,这里wait的参数设置为NULL,表示对于子进程退出的状态没有限制。若成功创建子进程,fork()函数则返回两个数值,主进程中返回的i的值为子进程的pid(pid>0),子进程中返回的值为0。

2024-01-13 20:46:42 2016 1

原创 SRN对时间序列进行预测

6.创建一个字典,每个类别对应一个 DataFrame。2.设置时间步和用于存储损失和未来预测的数据列表。10.创建并训练 Simple RNN 模型。1.导包(安装好tensorflow2)5.根据分类名称和销售日期对销量求和。3.从序列数据中提取输入特征和目标。13.绘制真实值和预测值的图形。7.将数据分为训练集和测试集。12.反归一化预测值和测试值。15.获取未来7天的预测。16.反归一化未来预测值。11.使用模型进行预测。14.计算损失函数指标。8.提取时间序列特征。

2024-01-11 09:23:28 566

原创 Jupyter Notebook切换conda环境

4.将一个 IPython 内核安装到 Jupyter Notebook中(这里的pytorch1.7为自己取的名字)2.切换到所需环境(conda activate 环境名)3.在虚拟环境中安装好ipykernel。

2024-01-09 20:45:46 1066

原创 Android 开发之recyclerView页面点击跳转

本项目分为四个界面:①第一个界面名为装备界面,使用了recyclerView瀑布流控件,展现一些羽毛球装备,可以上下滑动查看,点击图片,会显示当前点击的标题。②第二个界面名为球星界面,通过将球星的信息封装为Sportsman类,实例化出对象,将这些对象通过recyclerView展现出来,此外,点击球星的简介栏,可以跳转到详情界面,查看球星的具体信息,最后也可以返回到原界面。③第三个和第四个界面和第一次作业中一直,只显示“这里是消息界面”和“这里是我的界面的字样”。

2023-10-30 18:47:24 1286 2

原创 移动开发作业一

通过本次作业,我对Android应用程序的开发流程和主要组件有了更深入的理解。实践中我学到了如何处理UI事件、实现不同Fragment之间的通信,并通过整个过程更好地理解了Android开发的一般思路。在这次的Android应用程序开发作业中,我们主要学习了如何使用Android Studio和相关的开发工具,以及如何创建和管理Android应用的不同组件。使用了recycleview组件,还实现了点击弹出文字的功能。的显示和隐藏,实现底部导航栏的点击切换页面。,用于呈现底部Tab的图标和文字。

2023-10-16 18:54:53 997 3

RNN神经网络预测销量

已有数据集 安装好tensorflow2即可运行

2024-01-09

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除