获得徽章 0
#每天一个知识点# 在Go语言中,赋值操作要求左侧是一个可寻址的变量或者映射的索引。
这个问题通常出现在以下几种情况:
1. 试图给一个非可寻址的值(比如字符串字面量、常量、函数返回值等)赋值。
2. 试图给一个映射的索引赋值,但使用了错误的语法。
错误示例:
s := "hello"
for i := 0; i < len(s); i++ {
s[i] = 'a' // 错误:无法给字符串字面量赋值
}
正确示例:
s := []rune("hello") // 将字符串转换为可寻址的rune切片
for i := 0; i < len(s); i++ {
s[i] = 'a' // 正确:给rune切片的元素赋值
}
[微笑]
展开
评论
#每天一个知识点# sort.SearchInts 是 Go 语言标准库中的一个函数,它实现了对一个整数切片进行二分查找的算法。这个函数在 sort 包中,但它并不直接提供排序功能,而是用于在有序切片中查找特定元素的位置。
函数返回一个整数,表示在切片 arr 中,如果要插入 x 以保持切片的有序性,那么 x 应该插入的位置(从0开始计数)。如果 arr 中已经包含 x,则返回 x 的第一个匹配项的索引。[微笑]
展开
评论
#每天一个知识点# db2struct 是一个将 MySQL 数据库表结构转换成 Golang 语言中的 struct 定义的工具。这个工具可以帮助开发者快速生成对应数据库表的 Golang 代码,简化手动编写数据库交互代码的过程。安装 :`go install github.com/Shelnutt2/db2struct/cmd/db2struct` [微笑]
展开
评论
#每天一个知识点# go build -ldflags 允许你在编译时传递参数给链接器,这可以用来控制生成的可执行文件的某些属性,例如设置程序的入口点、版本信息、作者信息等。利用 -X 选项可以在编译时将一个值注入到程序中,通常用于设置构建时间、版本号或 Git 提交 ID等。例如:`go build -ldflags "-X main.version=1.0.0 -X main.revision=abc123"` [微笑]
展开
评论
#每天一个知识点# 在go语言中 _ 符号常用于编译期间的类型检查,确保一个具体类型实现了一个接口。比如 var _ Logger = &zapLogger{} ,确保 zapLogger 实现了 Logger 接口中定义的所有方法。[微笑]
评论
#每天一个知识点# 在 Go 项目开发中,如果你想要使得程序能够热加载,可以使用目前比较受欢迎的项目 air 。安装命令 `go install github.com/cosmtrek/air@latest` 根据官方仓库给的配置示例即可很快使用热加载功能(目前已经能支持windows环境)[微笑]
评论
#每天一个知识点# 在redis sort 命令中,默认情况下,sort命令以数字值的方式对排序键进行排序,如果使用了 ALPHA 选项,那么 sort 命令会假设排序键都是字符串值,按字符串的方式来进行排序。[微笑]
评论
#每天一个知识点# ● 补了一下算法:先序 中序 后序 遍历

○ 先序 :中 - 左 - 右 从根出发,记忆:绕着树外围转一圈
○ 中序 :左 - 中 - 右 从最左叶节点出发,记忆:将树投影到平面上
○ 后序 :左 - 右 - 中 从最左叶节点出发,记忆:像剪葡萄一样,由下至上一颗一颗剪掉

YuXi_0520 博客文章图做的很好,初学者有兴趣看一下 [微笑]
展开
评论
#每天一个知识点# redis为了保证相同的lua脚本在不同的机器上能够产生相同的结果,redis要求lua脚本及lua环境中的所有函数,都必须是无副作用的(side effect)的纯函数(pure function)。
Lua环境的math函数库中,用于生成随机数的math.random函数和math.randomseed函数都是带有副作用的,Redis使用自制的函数替换了math库中原有的函数。[微笑]
展开
评论
#每天一个知识点# redis 中的事务和传统的关系型数据库的最大区别是:redis不支持回滚(rollback)。redis的事务队列中的某个命令在执行期间出现了错误,整个事务也会继续执行下去,直到所有的命令都执行完毕。
举例:假如 msg 是一个字符串键,对msg执行 RPUSH 列表键的命令。在命令入列时,redis并不能检查出错误,只有当队列 EXEC 执行到该命令时才会出错,此时事务会继续执行。
Redis的作者在事务功能的文档中解释说,不支持事务回滚是因为这种复杂的功能和Redis追求简单高效的设计主旨不相符,并且他认为,Redis事务的执行时错误通常都是编程错误产生的,这种错误通常只会出现在开发环境中,而很少会在实际的生产环境中出现,所以他认为没有必要为Redis开发事务回滚功能。[微笑]
展开
评论
#每天一个知识点# redis在订阅发布功能中,关于模式部分,使用了Glob风格的模式匹配。Glob和正则表达式目的类似,但相对要简单很多,常见于linux shell。[微笑]
评论
#每天一个知识点# redis集群中的16384个槽可以分别指派给集群中的各个节点,每个节点都会记录哪些槽指派给了自己,而哪些槽又被指派给了其他节点。[微笑]
评论
#每天一个知识点# ja3作者23年10月发布了ja4。 JA4 / S/H/L/X/SSH,简称JA4+。JA4+提供了一套易于使用和共享的模块化网络指纹,取代了3年的JA2017 TLS指纹标准。tls 指纹技术用于扫描威胁参与者、恶意软件检测、会话劫持预防、合规性自动化、位置跟踪、DDoS 检测、威胁参与者分组、反向外壳检测等等
项目地址:github.com
[微笑]
展开
评论
#每天一个知识点# sentinel(哨兵)是一个运行在特殊模式下的redis服务器,它使用了和普通模式不同的命令表。所以sentinel模式能够使用的命令和普通redis服务器能够使用的命令不同。[微笑]
评论
#每天一个知识点# redis主服务器通过向从服务器传播命令来更新从服务器的状态,保持主从一致,而从服务器通过向主服务器发送命令来进行心跳检测,以及命令丢失检测(REPLCONF ACK <replication_offset>)。[微笑]
1
#每天一个知识点# 微软最新开源的C#编写的缓存数据库Garnet(简介描述为:new remote cache-store,实际对标redis)。使用了RESP协议,redis客户端不需要经过修改即可访问使用Garnet。当前版本为v1.0.1今日释出,v1.0.0版本在上周释出。有兴趣了解的访问github仓库。
项目地址:github.com
文档地址:microsoft.github.io
[微笑]
展开
评论
#每天一个知识点# redis服务器从启动到能够处理客户端的命令请求需要执行以下步骤:1. 初始化服务器状态 2. 载入服务器配置 3. 初始化服务器数据结构 4. 还原数据库状态 5. 执行事件循环 [微笑]
评论
#每天一个知识点# 当一个redis客户端通过网络连接上服务器时,服务器会为这个客户端创建相应的客户端状态。网络连接断开、发送了不合协议格式的命令请求、成为CLIENT KILL命令的目标、空转时间超时、输出缓冲区大小超出限制,以上原因都会造成客户端被关闭。[微笑]
评论
#每天一个知识点# redis服务器是一个事件驱动程序,服务器处理的事件分为时间事件和文件事件。服务器会轮流处理这两种事件,并且处理事件过程中也不会进行抢占。
时间事件的实际处理时间通常会比设定的到达时间晚一些。[微笑]
评论
下一页
个人成就
文章被点赞 1
文章被阅读 3,099
掘力值 142
收藏集
0
关注标签
2
加入于