
获得徽章 0
赞了这篇沸点
学习Redis开发规范。
Redis(Remote Dictionary Server)是一个开源的内存数据库,它被广泛用作缓存系统和键值存储系统。它提供了多种数据结构的支持,包括字符串、哈希、列表、集合和有序集合等。
键值设计:以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如ugc:video:1
value设计:string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000
后面看不懂,这就去用下
Redis(Remote Dictionary Server)是一个开源的内存数据库,它被广泛用作缓存系统和键值存储系统。它提供了多种数据结构的支持,包括字符串、哈希、列表、集合和有序集合等。
键值设计:以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如ugc:video:1
value设计:string类型控制在10KB以内,hash、list、set、zset元素个数不要超过5000
后面看不懂,这就去用下
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
展开
评论
点赞
赞了这篇沸点
#青训营 x 字节后端训练营# 今天第四次课,上了三节签完到。课下继续复习这几天学过的,然后处理自己的其他学习,天天感觉工作量真的很大,青训营课程确实也比之前想的要费精力时间,但也确实学到了好多,这些后端基础知识以后肯定都会用上。
![[奋斗]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_29.2801857.png)
评论
1
学习如何采用测试用例测试函数。
测试函数应该包括以下要求:
一、测试函数的名称以Test开头。
二、测试函数的签名应为func (t *testing.T),其中t是*testing.T类型的参数。这个参数用于报告测试失败或日志信息。
三、测试函数不能有返回值。
满足这些要求在命令行输入go test之后,go查找到测试函数,通过断言语句判断和预期结果是否相符,错误根据Errof语句返回错误地方的信息。
测试函数应该包括以下要求:
一、测试函数的名称以Test开头。
二、测试函数的签名应为func (t *testing.T),其中t是*testing.T类型的参数。这个参数用于报告测试失败或日志信息。
三、测试函数不能有返回值。
满足这些要求在命令行输入go test之后,go查找到测试函数,通过断言语句判断和预期结果是否相符,错误根据Errof语句返回错误地方的信息。
展开
评论
1
打卡,对于新版本的Go版本依赖模式,没有必要一定要在src目录下创建源码。可以采用go mod init加上模块名称初始化模块。
go会自动查找依赖包和依赖关系写入gomod中。而下载的第三方包放在pkg目录底下。当项目放在src里面的时候。会根据GO111MODULE选择的形式来处理包依赖的关系。
init生成的gomod名称可以在调用自己项目内包的时候使用。具体使用方法:import模块名+路径即可。
那么有一个问题,为什么现在Goland依旧有src文件的存在。以及大家都普遍把源码放入src里面
go会自动查找依赖包和依赖关系写入gomod中。而下载的第三方包放在pkg目录底下。当项目放在src里面的时候。会根据GO111MODULE选择的形式来处理包依赖的关系。
init生成的gomod名称可以在调用自己项目内包的时候使用。具体使用方法:import模块名+路径即可。
那么有一个问题,为什么现在Goland依旧有src文件的存在。以及大家都普遍把源码放入src里面
![[思考]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_15.f58c082.png)
展开
评论
点赞
学习0值,空值,空结构的概念。
零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。以下是自动赋的值:
对于值类型是布尔"false",数值0,字符串""。
对于引用类型是nil包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
nil 是 Golang 中预先声明的标识符,其主要用来表示引用类型的零值(指针,接口,函数,映射,切片和通道),表示它们未初始化的值。nil没有默认类型不能直接定义。
其中对于interfac()也是完全不确定类型的。(Type,Value)
var p *int // (T=*int,V=nil)
var i interface{} // (T=nil,V=nil)
fmt.Println(p == i) // (T=*int, V=nil) == (T=nil, V=nil) -> false
struct表示空结构,空结构不占内存
1. 使用 chan struct{} 代替 chan bool 在 goroutines 之间传递信号。使用 bool 容易让人不理解该值,true or false,但是使用 chan struct{} 就很清楚,我们不在乎值,只关心发生的事儿,更容易表达清楚一些。
2. 为了防止 unkeyed 初始化结构,可以添加 _ struct {} 字段:
零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。以下是自动赋的值:
对于值类型是布尔"false",数值0,字符串""。
对于引用类型是nil包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
nil 是 Golang 中预先声明的标识符,其主要用来表示引用类型的零值(指针,接口,函数,映射,切片和通道),表示它们未初始化的值。nil没有默认类型不能直接定义。
其中对于interfac()也是完全不确定类型的。(Type,Value)
var p *int // (T=*int,V=nil)
var i interface{} // (T=nil,V=nil)
fmt.Println(p == i) // (T=*int, V=nil) == (T=nil, V=nil) -> false
struct表示空结构,空结构不占内存
1. 使用 chan struct{} 代替 chan bool 在 goroutines 之间传递信号。使用 bool 容易让人不理解该值,true or false,但是使用 chan struct{} 就很清楚,我们不在乎值,只关心发生的事儿,更容易表达清楚一些。
2. 为了防止 unkeyed 初始化结构,可以添加 _ struct {} 字段:
展开
评论
点赞
[阅读打卡]
jsoniter是一款Json解释器。可以将构造完的结构体转换成json格式。转换速度比官方快6倍+。性能快速原因包括如下:采用字节流直接计算int值而非通过剪切字符串实现。重用切片而并非创造新的字节保存字段名称。
jsoniter是一款Json解释器。可以将构造完的结构体转换成json格式。转换速度比官方快6倍+。性能快速原因包括如下:采用字节流直接计算int值而非通过剪切字符串实现。重用切片而并非创造新的字节保存字段名称。
评论
点赞
#青训营 x 字节后端训练营# 打卡第十一天,今天看了二叉树的内容。二叉树是一种树形数据结构,它的每个节点最多有两个子节点,左子节点和右子节点。二叉树的特点是具有唯一的根节点,并且每个节点最多有两个子节点。二叉树被广泛应用于计算机科学中,例如搜索算法,排序算法和编译器等领域。
评论
点赞
#青训营 x 字节后端训练营# 打卡第八天。学习MYSQL技术。MySQL是一种关系型数据库管理系统,它是开源的并且广泛使用。MySQL支持在各种操作系统中运行,包括Windows、Unix和Linux等。 MySQL的主要优势包括高性能、可靠性和可扩展性。 使用MySQL可以快速有效地存储、检索和管理数据。 MySQL支持SQL语言,这是一种用于管理和查询数据库的标准语言。MySQL也支持存储过程、触发器、视图等高级功能,可用于更复杂的数据库应用程序。
展开
评论
点赞
#青训营 x 字节后端训练营# 打卡第七天,看了结构组同学的一天感觉工作以后就是时间被切得非常碎了,经常容易被各种事情打断,并且工作会占据自己绝大部分的时间,能够自己自由支配的时间可以说非常有限。自己的时间需要从时间碎片中不断去抽取了。
评论
点赞
#青训营 x 字节后端训练营# 打卡第七天,今天数据结构知识。常见结构有线性树形图形。在算法中要考虑时间复杂度和空间复杂度。学习了数组和链表的区别。动态数组: 开辟、销毁内存空间的次数相对较少, 但可能造成内存空间浪费(可以通过缩容解决)
双向链表: 开启、销毁空间的次数相对较多, 但不会造成内存空间的浪费
双向链表: 开启、销毁空间的次数相对较多, 但不会造成内存空间的浪费
展开
评论
点赞
#青训营 x 字节后端训练营# 打卡第六天今天尝试git运行,Git是一种版本控制工具用于管理代码的变更历史和团队合作开发。操作了一些命令例如:git init会多一个.git文件这个文件为版本库。工作区为本地项目存放文件的位置。暂存区为暂时存放文件的地方。可以采用commit命令将暂存区文件放入本地仓库。remote为远程仓库可以使用clone命令拷贝下来
展开
评论
点赞
#青训营 x 字节后端训练营# 打卡第五天阅读了git的文章补充了git的知识。Git是一个非常有用和强大的版本控制系统,被广泛用于软件开发和协作。它最初是由Linus Torvalds为了管理Linux内核开发而创建的。Git以其高效、可靠和分布式的特性而闻名,能够在代码开发、版本管理、合并和分支方面提高开发团队的生产力和效率。它也是开放源代码的软件,可以在多个平台上运行,包括Windows、Mac OS X和Linux等。因此,可以说Git是一种神奇的工具,为程序员和开发者提供了良好的开发环境和协作机制。
展开
评论
点赞
#青训营 x 字节后端训练营#
今天打卡第五天阅读了有关于http的内容。
http是超文本传输协议运行在tcp层之上。
http的结构包括header和body。并且对于请求报文和响应报文存在区别。
请求报文起始行包括方法路径和http协议,对于响应报文由http版本,状态码,原因构成。
其次结构包括头部空行实体。
今天打卡第五天阅读了有关于http的内容。
http是超文本传输协议运行在tcp层之上。
http的结构包括header和body。并且对于请求报文和响应报文存在区别。
请求报文起始行包括方法路径和http协议,对于响应报文由http版本,状态码,原因构成。
其次结构包括头部空行实体。
展开
评论
1