首页
留言
友链
架子鼓
更多
壁纸
直播
时光机
关于
Search
1
谷豆电视直播代理源码,谷豆代理原理解析
45,100 阅读
2
华为鸿蒙系统无法安装 xapk APP 闪退 ( youtube vanced ) 的解决办法
26,944 阅读
3
[转载]青龙面板+Ninja从零安装教程
19,135 阅读
4
docker 之 typecho 镜像-不推荐
13,097 阅读
5
typecho插件 - 在线下载主题到服务器 - addTheme 发布
8,874 阅读
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
登录
Search
标签搜索
msyql
主从
华为
鸿蒙
xapk
闪退
APP 闪退
kindle
mobi
docker
pip
alpine
梦浪的小虾米
累计撰写
143
篇文章
累计收到
587
条评论
首页
栏目
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
页面
留言
友链
架子鼓
壁纸
直播
时光机
关于
搜索到
143
篇与
的结果
2022-07-27
记一次 redis 神操作-又名踩坑日记
前言好久不更新博客了,我又来更新了。这次遇到的问题是 redis 里面删除 key 和 查询 key。项目背景老规矩,开头说一下项目背景。原商城项目二开,客户要求增加一个附近功能,而附近商家功能,我们以前已经有了,所以只需要打开上上去就行了。问题如果真是这么简单,那我岂不是没有文章可以写了?当然不是。把项目上到测试环境后,产品测试了一下,反馈说不能管理首页的 banner 和商品列表。我的第一反应就是:这个功能是好的,肯定是新来的产品啥都不懂。但为了防止被打脸,我特地试了一下,结果真的有问题。查看代码,发现是后台删除了 redis,但是没有删除完。因为有N个程序员开发过这一块,所以导致了这一块的功能特别拥挤,像屎一样,各种骚操作。现在需求是:每个城市每个地区都有对应的商家供其选择,如果没有商家,默认就取一个指定的城市。某一任程序员就写了一个神奇的操作:如果后台没有某个城市的数据,就取默认城市的数据放到该城市里面去,那么这里就有一个神奇的事情发生了:后台管理城市数据的时候,比如更新或者删除城市数据,但是前端并没有该城市数据,导致了后台删除了相关的redis,并没有删除那些已经存在的 redis 。例如:用户在前端请求北京市的数据,但是后台并没有北京市,所以默认把深圳市的数据给了北京,并且缓存到 redis 的 key 为北京的数据里面了,此时,在后台更新深圳市或者新增北京的时候,redis 并没有做相应的更新操作。解决方案那么如何解决这个问题呢?我为了图快,我是直接增加了一个集合。设置一个集合,不存在的 key 都放在集合里面,这样每次可以判断在不在集合里面了,而后台删除的时候,判断对应的城市key是否存在集合里面,存在就删除集合里面的对应的值。其它逻辑照常执行。比如已经存在的城市缓存就直接删除(unlink)后台为什么不做写操作?因为这个key可能很久都没有访问后记效率及功能分析当时改这段逻辑的时候,各种考虑,最后还是用了这种方式,原因为:set比list少一点重复,也就是说不用管数据重复问题。为什么不使用有序集合,因为不需要排序,只需要知道是否存在就行了。业务方面分析:原始版本:无法删除对应城市 redis 缓存修改了第一版本:增加了集合,后台删除的时候,使用 hscan + unlink 删除集合和已经缓存的城市 key,然后原始逻辑不变。最快实现。此时问题:前端请求后台不存在的城市数据会缓存到内存中,造成内存的浪费。修改了第二版本:前端先判断这个城市数据是否存在,如果不存在,判断集合中是否存在这个城市值,如果存在,返回默认的城市的缓存。而后台只需要删除集合里面需要新增的值就行了。鸣谢感谢大佬们的文章参考参考https://blog.csdn.net/u012998306/article/details/105417611 redis sadd 命令 以及 删除set集合或者单独删除set中的一/多条记录https://bbs.huaweicloud.com/blogs/317523 为了拿捏 Redis 数据结构,我画了 40 张图(完整版)https://blog.csdn.net/fuzhongmin05/article/details/119531696 数据结构如何造就Redis的快http://jinguoxing.github.io/redis/2018/09/04/redis-scan/ scan的使用https://www.lixueduan.com/post/redis/redis-scan/ Redis Scan 原理解析与踩坑https://nyogjtrc.github.io/posts/2019/12/delete-keys-matching-a-pattern-in-redis/ 刪除 Redis 中符合 Pattern 的 Keyhttps://redis.io/commands/unlink/ unlink http://mysql.taobao.org/monthly/2018/10/05/ redis lazyfree · 大key删除的福音https://blog.csdn.net/loophome/article/details/105204427 Redis删除大集合操作(Lists,Sets)
2022年07月27日
1,813 阅读
0 评论
0 点赞
2022-07-18
潘多拉固件相关教程
https://www.right.com.cn/forum/thread-825136-1-1.html ASUS RT-AC1200GU Padavan By hanwckf 附带适配文件https://yuos.top/index.php/archives/11/#cl-13 潘多拉编译日志https://openai.win/posts/tech/how-to-build-a-padavan-plugin/ 开发笔记https://www.right.com.cn/FORUM/forum.php?mod=collection&action=view&ctid=270&mobile=no 固件编译集合https://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=469400&ctid=270 踩坑笔记http://www.ifros.cn/index.php/2022/04/09/lede-compile/ 新手第一步编译openwrthttps://blog.csdn.net/qq_40566831/article/details/110650992 Pandorabox或openwrt的插件安装方法https://www.electronjs.org/zh/docs/latest/development/build-instructions-linux electronhttps://hqidi.com/12.html 完整编译教程https://www.right.com.cn/forum/thread-8104907-1-3.html 小白https://www.right.com.cn/forum/thread-1673645-1-1.html github自动编译
2022年07月18日
2,069 阅读
1 评论
0 点赞
2022-07-12
aria2 rpc服务器初次启动错误的解决方法 !create dir "aria" on target volume!
今天遇到这个问题了,google了一圈没有解决,结果无意间看到google上显示了论坛的一个帖子,抱着试试的心态,打开看看,结果一看就发现和自己的错误一致。然后也是没有解决。我们的错误都是这个(凡是启动不了,都可以参考这个帖子,这个错误只是初次启动时,没有配置好)Aria: Cannot start: please create dir "aria" on target volume!我的机型:华硕路由器,刷潘多拉固件我的目的:启动aria,第二步在潘多拉上面搭建阿里云盘,然后把阿里云盘的东西传到aria上下载,这是后续先不说这个通用解决方案:为什么说是通用解决方案呢?因为大部分人都是这个原因,不管是不是我的这个问题,只要是启动不了 aria2 就可以这样操作。(在坛子里面搜索到了一堆东西,最后才有了解决的思路,感谢大家)首先第一步:开启ssh连接(或者telnet,这个咱不会用,ttyd也可以,咱也不会用)第二步:在ssh的命令行(如何连接太简单,自己百度)内输入 find / -name aria2.conf (请直接复制红字部分进行粘贴,不要自己手敲,除非你懂)等待N分钟后,你会发现有或者没有。有的自己打开这个文件进行编辑vim /media/Seagate_Backup_Plus_Drive/aria/config/aria2.conf (你会发现除了开头的vim,后面的都是原封不动的复制过来的,所以你自己复制自己的命令行里面显示的文件地址)没有的呢?我就是没有的。没有肯定是空的(就是啥也没有),不要慌。把命令复制到命令行内 find / -name aria2* (请直接复制红字部分进行粘贴,不要自己手敲,除非你懂)你会发现命令行会返回一个地址 :/usr/bin/aria.sh此时打开这个文件 cat /usr/bin/aria.sh (开头cat 后面的原封不动复制你的命令行返回的东西)查看里面你会发现红框框内的东西,你可以选择:1 改掉这个东西,2 新建这个目录改的话,你就要找你的硬盘的挂载路径,比如我的 :/media/Seagate_Backup_Plus_Drive新建这个路径的话,你就要看看你的 /mnt 目录下有没有 aria 这个目录我的做法是3 建立软连接ln -s /media/Seagate_Backup_Plus_Drive/aria /mnt/aria然后在路由器上重启自己的 aria 服务复盘所以逻辑很简单,就是先找这个配置文件,然后看配置文件里面是怎么配置的,然后根据配置文件进行修改或者其它操作,最后查看日志。抱歉,我是第一次试用 aria,所以里面还有很多的东西写的不是很清楚,希望可以帮到每个像我一样:初次安装这个东西的人新人第一次写教程,写的已经够详细了,求鼓励,求轻喷,求保护。
2022年07月12日
3,140 阅读
1 评论
0 点赞
2022-06-24
怎样预防生产环境错误?
自己摸索,自己记录哈。欢迎提供更好的解决方案。系统能够抛出异常,让使用者能够正常操作下去。比如下单接口报错,后台应该是能返回一个错误给前端,而前端判断到错误后,直接提示错误,然后让用户去进行重复操作或者其它操作系统应该能够记录错误的请求参数。后台错误后,应该有错误日志去记录请求参数是啥,错误是啥错误。这样开发者可以通过错误去排查
2022年06月24日
746 阅读
0 评论
0 点赞
2022-06-12
这两周阅读-技巧
文章vscode 生成文件名,注释python实战案例linux 查看服务器配置片段进行压测时的一些小建议:压测尽可能让并发数从低往高慢慢递增,避免一开始就设的太大,一个比较好的参考依据是现在阶段线上环境的并发数 压测的持续时间可以持续久一点,这样可以看到更多可能出现的情况,可以考虑5分钟,8分钟,15分钟等 有条件的,压测和被压测的机器要独立,因为压测的时候也会有资源占用,可能会影响被压测的接口 不要只看压测的结果数据,还要留意被压测机的cpu,内存等指标在压测时是否正常 内网压测的效果达到预期后,再考虑外网的,网络因素,可控性不强作者:catcherwong链接:https://juejin.cn/post/6962715206178832392来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2022年06月12日
1,466 阅读
1 评论
0 点赞
1
...
5
6
7
...
29