先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注go)
正文
输出结果:
- “dbfilename”
- “dump.rdb”
- “requirepass”
- “”
- “masterauth”
- “”
- “cluster-announce-ip”
- “”
- “unixsocket”
- “”
- “logfile”
- “”
- “pidfile”
- “”
- “slave-announce-ip”
- “”
- “replica-announce-ip”
- “”
- “maxmemory”
- “0”
- “proto-max-bulk-len”
- “536870912”
- “client-query-buffer-limit”
- “1073741824”
- “maxmemory-samples”
- “5”
- “lfu-log-factor”
- “10”
- “lfu-decay-time”
- “1”
- “timeout”
- “0”
- “active-defrag-threshold-lower”
- “10”
- “active-defrag-threshold-upper”
- “100”
- “active-defrag-ignore-bytes”
- “104857600”
…
如图所示:
图1:Redis配置项
注意:由于版本和操作系统的不同,配置项的数量会存在差异。
更改配置项
如果想要重新设置配置项,需要使用以下命令:
redis 127.0.0.1:6379> CONFIG SET 配置项名称 配置项参数值
示例如下:
127.0.0.1:6379> CONFIG SET loglevel “verbose”
OK
127.0.0.1:6379> CONFIG GET loglevel
- “loglevel”
- “verbose”
Redis 的日志级别有以下四种:
- debug:会打印出很多信息,适用于开发和测试阶段。
- verbose(冗长的):包含很多不太有用的信息,但比debug简化一些。
- notice:适用于生产模式。
- warning : 警告信息。
Redis 默认设置为 verbose,开发测试阶段可以用 debug,生产模式一般选用 notice。
更改配置文件
Redis 某些配置信息无法直接通过命令修改,此时就需要修改配置文件,比如设置 Redis 允许远程连接的功能。配置文件修改如下:
1.注释掉本地IP地址,绑定要访问的外部IP
#bind 127.0.0.1 ::1
bind 192.168.1.1
2.关闭保护模式(把yes改为no)
protected-mode no
3.重启服务器,windows重启
redis-server --service-stop
redis-server --service-start
Linux重启
sudo /etc/init.d/redis-server restart
配置项说明
下表对一些配置项做了简单地说明:
配置项 | 参数 | 说明 |
---|---|---|
daemonize | no/yes | 默认为 no,表示 Redis 不是以守护进程的方式运行,通过修改为 yes 启用守护进程。 |
pidfile | 文件路径 | 当 Redis 以守护进程方式运行时,会把进程 pid 写入自定义的文件中。 |
port | 6379 | 指定 Redis 监听端口,默认端口为 6379。 |
bind | 127.0.0.1 | 绑定的主机地址。 |
timeout | 0 | 客户端闲置多长秒后关闭连接,若指定为 0 ,表示不启用该功能。 |
loglevel | notice | 指定日志记录级别,支持四个级别:debug、verbose、notice、warning,默认为 notice。 |
logfile | stdout | 日志记录方式,默认为标准输出。 |
databases | 16 | 设置数据库的数量(0-15个)共16个,Redis 默认选择的是 0 库,可以使用 SELECT 命令来选择使用哪个数据库储存数据。 |
save[seconds] [changes] | 可以同时配置三种模式: save 900 1 save 300 10 save 60 10000 | 表示在规定的时间内,执行了规定次数的写入或修改操作,Redis 就会将数据同步到指定的磁盘文件中。比如 900s 内做了一次更改,Redis 就会自动执行数据同步。 |
rdbcompression | yes/no | 当数据存储至本地数据库时是否要压缩数据,默认为 yes。 |
dbfilename | dump.rdb | 指定本地存储数据库的文件名,默认为 dump.rdb。 |
dir | ./ | 指定本地数据库存放目录。 |
slaveof | 主从复制配置选项 | 当本机为 slave 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动与 master 主机进行数据同步。 |
requirepass | foobared 默认关闭 | 密码配置项,默认关闭,用于设置 Redis 连接密码。如果配置了连接密码,客户端连接 Redis 时需要通过 密码认证。 |
maxmemory | 最大内存限制配置项 | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会尝试清除已到期或即将到期的 Key,当此方法处理 后,若仍然到达最大内存设置,将无法再进行写入操作,但可以进行读取操作。 |
appendfilename | appendonly.aof | 指定 AOF 持久化时保存数据的文件名,默认为 appendonly.aof。 |
glueoutputbuf | yes | 设置向客户端应答时,是否把较小的包合并为一个包发送,默认开启状态。 |
如果想全面了解配置选项,可以参考官方网站相关文档:点击前往。
本节对 Redis 的常用配置项和基本命令做简单的总结,您可以把本篇文章看做简版的速查手册。不过,需要注意的是由于 Redis 不同版本的差异,配置项会多少存在一些不同,但总体的来说,大同小异。
基本配置
port 6379 # 监听端口号,默认为6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接。
daemonize no #指定redis是否以守护线程的方式启动
databases 16 #创建database的数量,默认为0库
save 900 1 #刷新快照到硬盘中。必须满足下列三个要求之一才会触发,即900秒内至少有1个key发生变化。
save 300 10 #在300秒内至少10个key发生变化。
save 60 10000 #在60秒之内至少有10000个可以发生变化。
stop-writes-on-bgsave-error yes #后台存储错误并停止写入命令。
rdbcompression yes #使用LZF方式压缩rdb文件。如果你想节省一些CPU可设置成’no’
rdbchecksum yes #在存储、加载rdb文件时进行校验。
dbfilename dump.rdb #设置rdb文件名。
dir ./ #设置工作目录,rdb文件会自动存放在该目录。
主从服务配置
slaveof #将本机设为某台机器的从服务器
masterauth #连接主服务器的密码
slave-serve-stale-data yes # 当主机和从机断开时或这正处于在复制过程中,是否让从服务器是应答请求
slave-read-only yes #设置从服务器为只读模式
repl-diskless-sync no #是否同时向多个从服务器节点同时发数据
repl-diskless-sync-delay 5 #发送数据的延迟时间
repl-ping-slave-period 10 #主节点默认每隔 10 秒对从节点发送 ping 命令
repl-timeout 60 #主从服务器超时时间(超时认为断线了),要比period设置的时间大
#如果master不能再正常工作,那么会在多个slave中,选择优先值最小的一个slave提升为master,
#优先值为0表示不能提升为master,一般在哨兵sentinel环境中使用。
slave-priority 100
#在slave和master同步后,后续的同步是否设置成TCP_NODELAY,设置成no,则redis master会立即发送同步数据,没有延迟
repl-disable-tcp-nodelay no
min-slaves-to-write 3 #主节点仅允许当能够通信的从节点数量大于等于此处的值时,才允许接受写操作;
min-slaves-max-lag 10 #从节点延迟时长超出此处指定的时间时,主节点会拒绝写入操作;
安全配置
requirepass foobared # 用来配置密码
rename-command CONFIG b84 #在公共环境下重命名部分敏感命令 如config、flushall等
限制配置
maxclients 10000 #最大连接数
maxmemory #最大使用内存
maxmemory-policy volatile-lru #内存到极限后的处理策略
#内存处理策略,用于在超出内存限制时,删除一些key
volatile-lru # LRU算法删除过期key
allkeys-lru # LRU算法删除key(不区分过不过期)
volatile-random # 随机删除过期key
allkeys-random # 随机删除key(不区分过不过期)
volatile-ttl # 删除快过期的key
noeviction # 禁止删除key,这如果内存不足,会直接返回错误。默认配置
#用于提高LRU/TTL算法的精准度,在自动清理内存时,指定的数字越大,CPU消耗就越多,默认为5。
maxmemory-samples 5
AOF日志模式
appendonly no #是否启用日志模式
appendfsync no # 有系统决定何时写,统一写,速度快
appendfsync always # 系统不缓冲,一直写,但是慢,这种方式几乎不丢失数据
appendfsync everysec #每秒写1次
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ec #每秒写1次
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-mUzMQXKF-1713358877158)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!