range

If there were you, the world would be just right

The selected directory is not a valid home for Go SDK
win10 go 版本 1.17.3 goland 2019.2.3 goland 指定go 版本 报错 The selected directory is not a valid home for Go SDK

修改 D:/Program Files/go1.17.3/src/runtime/internal/sys/zversion.go 添加 const TheVersion = go1.17.3 搞定


ik分词器安装 声明:安装完成后需要重新启动elasticsearch,elasticsearch-head,kibana

1.进入elasticsearch目录

# git文档查看 https://github.com/medcl/elasticsearch-analysis-ik

#执行安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip

2.重启es

3.elasticsearch-plugin list 可以通过这个命令来查看加载进来的插件


下载解压,主要kibana版本需要跟es版本一致

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-linux-x86_64.tar.gz

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz

1. 修改kibana配置文件kibana.yml

vim config/kibana.yml

# 追加配置如下:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.16.199:9200"]
i18n.locale: "zh-CN" #汉化

4. 启动kibana

#后台启动
nohup  ./kibana --allow-root  &

简介

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。

1 RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。

2 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。

3 Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。

4 你甚至可以关闭持久化功能,让数据只在服务器运行时存在

阅读剩余部分...


一、内存回收策略

1. 删除到达时间的键对象。 
2. 内存使用达到maxmemory上限时触发内存溢出控制策略。

二、持久化

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令) 从内 存保存到硬盘。 当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。Redis持久化 分为 RDB持久化和AOF持久化,前者将当前数据保存到硬盘,后者则是将每次执行的写命令保存到硬盘。

2.1. RDB持久化
    RDB是一种快照存储持久化方式,具体就是将Redis某一时刻的内存数据保存到硬盘的文件当中,默认保存的文件名为dump.rdb,而在Redis服务器启动时,会重新 加载dump.rdb文件的数据到内存当中恢复数据。触发 RDB 持久化过程分为手动触发和自动触发。

    手动触发分别对应 save 和 bgsave 命令 
        save 命令:阻塞当前 Redis 服务器,直到 RDB 过程完成为止,对于内存比较大的实例会造成长时间阻塞,线上环境不建议使用。 
        bgsave 命令:Redis 进程执行 fork 操作创建子进程,RDB 持久化过程由子进程负责,完成后自动结束。阻塞只发生在 fork 阶段,一般时间很短。显然 bgsave 命令是针对 save 阻塞问题做的优化。因此 Redis 内部所有的涉及 RDB 的操作都采用 bgsave 的方式 
    除了执行命令手动触发之外,Redis 内部还存在自动触发RDB 的持久化机制,例如以下场景: 
        1. 使用 save 相关配置,如“save m n”。表示 m 秒内数据集存在 n 次修改时,自动触发 bgsave。 
        2. 如果从节点执行全量复制操作,主节点自动执行 bgsave 生成 RDB 文件并发送给从节点。 
        3. 执行 debug reload 命令重新加载 Redis 时,也会自动触发 save 操作。 
        4. 默认情况下执行shutdown命令时,如果没有开启 AOF 持久化功能则自动执行 bgsave

2.2 AOF持久化
    AOF(append only file)持久化:与RDB存储某个时刻的快照不同,AOF持久化方式会记录客户端对服务器的每一次写操作命令到日志当中,并将这些写操作 以 Redis协议追加保存到以后缀为aof文件末尾。
    开启 AOF 功能需要设置配置:appendonly yes,默认不开启。AOF 文件名通过 appendfilename 配置设置,默认文件名是 appendonly.aof。保存路径同 RDB 持久 化方式一致,通过 dir 配置指定

三、redis主从

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到 从节点。 

默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

Redis 复制问题,当主机 Master 宕机以后,我们需要人工解决切换,比如使用 slaveof no one 。实际上主从复制并没有实现 高可用。

四、哨兵机制

redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工讲从节点晋升为主节点,同时还要通知应用方更新主节点地址,那这就会存在着问题;哨兵 就是来处理这个问题的
    1. 主节点发生故障后,客户端连接主节点失败,两个从节点与主节点连接失败造成复制中断 
    2. 如果主节点无法正常确定,需要选出一个从节点升级为主节点,对它执行 slaveof no one 命令 
    3. 原来的从节点成为新的主节点后,更细应用方的主节点信息,重新启动应用方 
    4. 客户端命令另外一个从节点去复制新的主节点 
    5. 待原来的主节点恢复后,让它去复制新的主节点。

五、Redis 集群

Redis Cluster 是 Redis 的分布式解决方案,在3.0版本正式推出,有效地解决了 Redis 分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用 Cluster 架构方案达到负载均衡的目的。

使用集群好处
    1、将数据自动切分到多个节点的能力。
    2、当集群中的一部分节点失效或者无法进行通讯时,仍然可以继续处理命令请求的能力,拥有自动故障转移的能力。