最全Redis入门到超神 - 03 redis,看完跪了

Kafka实战笔记

关于这份笔记,为了不影响大家的阅读体验,我只能在文章中展示部分的章节内容和核心截图

image.png

  • Kafka入门
  • 为什么选择Kafka
  • Karka的安装、管理和配置

image.png

  • Kafka的集群
  • 第一个Kafka程序
  • image.png

afka的生产者

image.png

  • Kafka的消费者
  • 深入理解Kafka
  • 可靠的数据传递

image.png

image.png

  • Spring和Kalka的整合
  • Sprinboot和Kafka的整合
  • Kafka实战之削峰填谷
  • 数据管道和流式处理(了解即可)

image.png

  • Kafka实战之削峰填谷

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

| 04 | Redis入门到超神 - 04 redis的5种数据结构 |

注意,redis配置文件中的单位是不区分大小写的,比如 1GB 1Gb 1gB 都是一样的。并且各单位转换关系如下:

1k => 1000 bytes

1kb => 1024 bytes

1m => 1000000 bytes

1mb => 1024_1024 bytes

1g => 1000000000 bytes

1gb => 1024_1024*1024 bytes

Redis的配置文件默认名为 redis.conf

如果我们通过客户端连接上redis,可以通过 CONFIG 命令查看或设置配置项。查看配置项的命令为 CONFIG GET CONFIG_SETTING_NAME

查看端口号配置项

127.0.0.1:6379> CONFIG GET port

  1. “port”

  2. “6379”

查看密码配置项

127.0.0.1:6379> CONFIG GET requirepass

  1. “requirepass”

  2. “123456”

127.0.0.1:6379>

当然,也可以通过CONFIG GET * 查看所有配置项。此只列出部分配置项。

127.0.0.1:6379> CONFIG GET *

  1. “dbfilename”

  2. “dump.rdb”

  3. “requirepass”

  4. “123456”

  5. “masterauth”

  6. “”

  7. “cluster-announce-ip”

  8. “”

  9. “unixsocket”

  10. “”

  11. “logfile”

  12. “”

  13. “pidfile”

  14. “/var/run/redis_6379.pid”

  15. “slave-announce-ip”

  16. “”

  17. “replica-announce-ip”

  18. “”

  19. “maxmemory”

  20. “0”

  21. “proto-max-bulk-len”

  22. “536870912”

  23. “client-query-buffer-limit”

  24. “1073741824”

  25. “maxmemory-samples”

  26. “5”

CONFIG SET 命令修改配置项,语法为 CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

修改日志级别

127.0.0.1:6379> CONFIG SET loglevel “notice”

OK

不过我们一般是打开 redis.conf 配置文件,进行修改,然后再重新启动redis服务。

################################## INCLUDES 包含 ###################################

如果有多个配置文件,可以在此配置引入。

引入其它配置文件。如果你有多个redis服务,而有一些配置项是它们公用的,那么你可以将这些公用的配置项写进一个配置文件common.conf里,

然后这些redis服务再include这个配置文件,这些服务自己的配置项则分别写在自己的配置文件里。

include /path/to/local.conf

include /path/to/other.conf

################################## MODULES 模块 #####################################

如果我们需要加载其他模块,可以在此配置

loadmodule /path/to/my_module.so

loadmodule /path/to/other_module.so

################################## NETWORK 网络 #####################################

指定redis只接收哪些IP的请求,如果配置bind 127.0.0.1则只监听本机的客户端请求,如果注释掉不进行设置,则代表接收所有IP的请求。

bind 192.168.1.100 10.0.0.1

bind 127.0.0.1 ::1

bind 127.0.0.1

are explicitly listed using the “bind” directive.

是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只能本地进行访问,拒绝外部访问。

如果开启了密码和bind,可以开启。否则最好关闭,即设置为no。

protected-mode no

设置监听的端口号,默认是6379。如果设置0,则不监听任何tcp请求。

port 6379

在高并发环境下,并且客户端连接请求慢时,你需要设置更高的值。此值代表了TCP连接中已完成队列(完成三次握手之后)的长度,

此值必须会受到Linux系统下/proc/sys/net/core/somaxconn文件中值的限制,redis默认是511,而Linux的默认参数值是128。

所以我们得同时提高这2个值的大小,以至于能获得更好的性能以及预期的效果。一般会将它修改为2048或者更大。

在/etc/sysctl.conf中添加:net.core.somaxconn = 2048,然后在终端中执行sysctl -p

tcp-backlog 511

配置unix socket的路径,来让redis支持监听本地连接。

unixsocket /tmp/redis.sock

配置unix socket使用文件的权限。

unixsocketperm 700

此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0

timeout 0

tcp 保活。单位是秒。如果设置不为0,就使用配置tcp的SO_KEEPALIVE值。

使用keepalive有两个好处:

1. 检测挂掉的对端。

2. 降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。

在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值

tcp-keepalive 300

################################# GENERAL 基本 #####################################

是否在后台执行,yes代表后台运行。如果后台允许,会将服务pid写到/var/run/redis.pid文件中

daemonize yes

可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。

supervised no

redis服务后台启动时,pid写入的文件位置

pidfile /var/run/redis_6379.pid

日志级别。

debug:记录大量日志信息,适用于开发和测试

verbose:较多日志信息

notice:适量日志信息,适用于生产环境

warning:仅有部分重要、关键信息才会被记录

loglevel notice

日志文件的位置,当指定为空字符串时,为标准输出,如果redis为守护进程模式运行,那么日志将会输出到 /dev/null

logfile “”

是否把日志记录到系统日志

syslog-enabled no

设置系统日志的id

syslog-ident redis

指定syslog设备,必须是user或则local0到local7

syslog-facility local0

设置数据库的数目。默认的数据库是DB 0 ,可以在每个连接上使用select 命令选择一个不同的数据库,dbid是一个介于0到databases - 1之间的数值。

databases 16

是否在交互式终端启动的时候显示log,不用管它就好,感觉没啥意义

always-show-logo yes

################################ SNAPSHOTTING 快照 ################################

保存数据到磁盘。格式是:save ,即在seconds秒之后至少有changes个keys发生改变则保存一次。

如果你不想保存数据到磁盘,则注释掉所有save行即可,也可改为save “”

save “”

save 900 1

save 300 10

save 60 10000

默认情况下,如果redis最后一次的后台保存失败,redis将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,

否则就会没人注意到灾难的发生。如果后台保存进程重新启动工作了,redis也将自动的允许写操作。

然而你要是安装了靠谱的监控,你可能不希望redis这样做,那你就改成no。

stop-writes-on-bgsave-error yes

是否在dump.rdb数据库的时候压缩字符串,默认设置为yes。如果你想节约一些cpu资源的话,可以把它设置为no,这样的话数据集就可能会比较大。

rdbcompression yes

是否CRC64校验rdb文件,会有一定的性能损失(大概10%)。

rdbchecksum yes

rdb文件的名字。

dbfilename dump.rdb

数据库存放目录。必须是一个目录,aof文件也会保存到该目录下。默认在启动脚本相同的目录下。

dir ./

################################# REPLICATION 主从复制 #################################

设置本机为slave服务,并且填写主节点的ip和端口号

replicaof

master的密码。如果master服务设置了密码保护,slave服务连接master时需要密码。

masterauth

当一个slave与master失去联系时,或者复制正在进行的时候,slave应对请求的2种行为:

1:如果设置yes(默认值),slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候;

2:如果设置no,在你执行除了info和replicaOF和AUTH…等之外的其他命令时,slave返回一个"SYNC with master in progress"的错误。

replica-serve-stale-data yes

设置slave是否是只读的。从2.6版起,slave默认是只读的。

replica-read-only yes

主从数据复制是否使用无硬盘复制功能。

repl-diskless-sync no

当五磁盘复制被开启时,等待5s后再开始复制,因为要等更多replica重新连接过来,可以公用一个RDB。如果不延迟等待可以设置为0

repl-diskless-sync-delay 5

指定slave定期ping master的周期,默认10秒钟。

repl-ping-replica-period 10

最后

分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。

这些面试题相对应的技术点:

  • JVM
  • MySQL
  • Mybatis
  • MongoDB
  • Redis
  • Spring
  • Spring boot
  • Spring cloud
  • Kafka
  • RabbitMQ
  • Nginx

大类就是:

  • Java基础
  • 数据结构与算法
  • 并发编程
  • 数据库
  • 设计模式
  • 微服务
  • 消息中间件

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

程序员,每个月给你发多少工资,你才会想老板想的事?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

.(img-FjACIFQW-1715579722055)]

[外链图片转存中…(img-dg2HldPC-1715579722055)]

[外链图片转存中…(img-l2ShrfpQ-1715579722055)]

[外链图片转存中…(img-X0YD6PRx-1715579722056)]

[外链图片转存中…(img-O01ewNEe-1715579722056)]

[外链图片转存中…(img-xmpYig7Y-1715579722056)]

[外链图片转存中…(img-jFvxBFbc-1715579722057)]

[外链图片转存中…(img-YlaNHBY2-1715579722057)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值