《使用Gin框架构建分布式应用》阅读笔记:p108-p126

news/2024/10/22 23:05:55

《用Gin框架构建分布式应用》学习第8天,p108-p126总结,总计18页。

一、技术总结

1.Redis eviction policy

(1)什么是 eviction policy?

The eviction policy determines what happens when a database reaches its memory limit.

(2)配置示例

在redis.conf中配置。

maxmemory-policy allkeys-lrumaxmemory 512mb

(3)参考资料

https://redis.io/docs/latest/operate/rs/databases/memory-performance/eviction-policy/。

2.Redis缓存刷新

使用缓存后会引入一个问题:当数据库的数据更新后(新增、修改、删除),如何保证数据的一致性(缓存里面的数据和数据库里面的数据是一样的)?即我们平常所说的“缓存刷新”。Redis 缓存刷新逻辑一般是两个方向:

(1)设置TTL(Time To Live)

TTL设置为多长,取决于具体业务,这里不展开讨论。

(2)新增的时候更新

当有数据更新的时候,删除掉缓存。

3.Redis GUI工具

(1)Redis Insight

Redis Insights (https://github.com/RedisInsight/RedisInsight)是书里面提到的Redis官方的GUI,试了下,不好用——比如选择某个库,得手动输入;值转换成JSON,得加载全部才能转,较麻烦。

(2)Another Redis Desktop Manager

ADRM(https://github.com/qishibo/AnotherRedisDesktopManager)是本人在实际工作中使用的GUI工具,本人更倾向于使用这个。

4.performence benchmark

(1)Apache Benchmark

Apache Benchmark使用详见:https://httpd.apache.org/docs/2.4/programs/ab.html。

(2)gnuplot

本人也是第一次听说 Apache 和 gnuplot,这里 mark 一下。

二、英语总结

1.eviction

p108, For production usage, it's recommends to configure an eviction policy.

(1)eviction:evict的名词形式。

(2)evict: e-(out, away) + vincere("conquer")。vt. to force sb to leave somewhere(驱逐).

evict的本意是驱逐,在Redis里面,“eviction policy”算是一种比喻用法。In computing, "evict" is used metaphorically, as if the data is being "forced out" of memory, similar to how a person might be evicted from a property.

2.wicked

As we can see, retrieving data from memory (Redis) is wicked fast compared to retrieving

data from disk (MongoDB).

wicked 既可以做形容词,可以做副词,这里的用法是做副词。

3.work like a charm

这是一个惯用语(idom),意为“to work very well”。

三、其它

有时候总想着快速掌握这些编程技能,而从这么多年的编程工作经历看,“掌握”只是一个结果,我们需要注重的是过程。就如这一刻,在阅读这本书的过程中,当进展顺利时,我知道自己掌握了这些知识点,而当遇到问题时,我知道这是因为自己还没有掌握了或者说还不够熟练,那么自己如何解决这些问题?这才是重点。每天阅读的进度有时快,有时慢,而怎样才能保证一个最基本的阅读量,这是我们在阅读过程中需要去思考的,需要去实践的。

四、参考资料

1. 编程

(1) Mohamed Labouardy,《Building Distributed Applications in Gin》:https://book.douban.com/subject/35610349

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74854.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

.NET云原生应用实践(三):连接到PostgreSQL数据库

本章目标实现基于PostgreSQL的SDAC(简单数据访问层) 将Stickers微服务切换到使用PostgreSQL SDAC为什么选择PostgreSQL数据库? 其实并不一定要选择PostgreSQL数据库,这里主要出于几个方面考虑:PostgreSQL免费易用,轻量效率高,能够满足目前的需求 PostgreSQL生态成熟,资…

R语言机器学习系列教程大纲

R语言机器学习算法实战系列(一)XGBoost算法+SHAP值(eXtreme Gradient Boosting) R语言机器学习算法实战系列(二) SVM算法+重要性得分(Support Vector Machine) R语言机器学习算法实战系列(三)lightGBM算法+SHAP值(Light Gradient Boosting Machine) R语言机器学习算…

例题2.41

例题2.41代码 import pandas as pd import numpy as np a = pd.DataFrame(np.random.randint(1,6,(5,3)), index=[a, b, c, d, e], columns=[one, two, three]) a.loc[a, one] = np.nan #修改第1行第1列的数据 b = a.iloc[1:3, 0:2].values #提取第2、3行,第1、2列数据 a[fo…

例题2.38_2

例题2.38_2代码 import pandas as pd import numpy as np dates=pd.date_range(start=20191101, end=20191124, freq=D) a1=pd.DataFrame(np.random.randn(24,4), index=dates, columns=list(ABCD)) a2=pd.DataFrame(np.random.randn(24,4)) a1.to_excel(data2_38_4.xlsx, in…

中国移动光猫获取超级管理员密码

开启Telnet 1.登录光猫: web输入192.168.1.12.查询telnet是否开启 web输入 192.168.1.1/webcmcc/gui_device_info.html?password=!@qw34er&username=roottelnet=1为成功 如 telnet=0 则 web输入 192.168.1.1/webcmcc/telnet.html?password=!@qw34er&username=root勾…

IDEA如何在当前分支的基础上新建一个分支

前言 我们在使用IDEA开发Java应用时,总是和git一起使用的,有时候,我们需要在当前的分支上新建一个分支,用于做一些额外功能开发,或者BUG修复等。 那么,我们应该如何在IDEA中新建一个分支呢? 如何新建分支 首先,我们点击下我们当前的分支,默认是当前分支切出来新分支,…

通过命令行修改nacos配置文件

通过命令行修改nacos配置文件 1、介绍 nacos-cli是一个命令行工具,用来代替nacos的图形界面操作。下载地址:GitHub - szpinc/nacos-cli: 用终端命令行的方式操作nacos 2、安装 进入页面之后,下载对应的文件,上传到服务器上,授予执行权限,放到Linux执行文件bin目录,/usr/…

例题2.36

例题2.36代码 import numpy as np a = np.eye(4) b = np.rot90(a) c, d = np.linalg.eig(b) print(特征值为:, c) print(特征向量为:\n, d)