页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

Redis 高性能的键值数据库,主要存储Smartbi会话信息。

Redis Cluster集群保证服务的高可用性。

注意

Redis Cluster集群安装包请联系Smartbi官方支持获取。


目录
maxLevel3

1. 系统环境准备

推荐配置:

1.1 推荐配置

系统CPU内存硬盘redis版本
Centos7
CentOs 7.0+
2C
4C+
4G
8G+
200G
200GB+5.0+


1.

1

2 防火墙配置

为了便于安装,建议在安装前关闭防火墙。使用过程中,为了系统安全可以选择启用防火墙,但必须启用Redis使用到的相关端口。

1.

1

2.1 关闭防火墙

临时关闭防火墙:

临时关闭防火墙(立即生效)

代码块
#
systemctl stop firewalld     
禁止防火墙开机启动:

禁止防火墙开机启动(重启后生效)

代码块
#
systemctl disable firewalld

查看防火墙状态:

代码块
#
systemctl status firewalld


1.

1

2.2 开启防火墙

1、Redis单机部署:

Redis默认监听6379端口,如果开放防火墙,则需要开放此端口。

代码块
# firewall-cmd --permanent --add-port=6379/tcp
2、Redis三主三从

1、Redis三主三从(端口可自定义):

修改主节点监听端口7000,从节点监听端口7001

如果开放防火墙,则需要开放redis监听端口:

代码块
#
firewall-cmd --permanent --add-port=7000/tcp
#
firewall-cmd --permanent --add-port=7001/tcp

集群实例相互通信的内部总线端口(默认比redis监听端口大于10000):

代码块
#
firewall-cmd --permanent --add-port=17000/tcp
#
firewall-cmd --permanent --add-port=17001/tcp
3、配置完成,重新加载firewalld使配置生效:


2、配置完成,重新加载firewalld使配置生效:

代码块
#
firewall-cmd --reload

查看防火墙开放的端口:

代码块
#
firewall-cmd --list-all

1.

1

2.3 关闭Selinux防火墙

临时关闭selinux防火墙:

代码块
#
setenforce 0

永久关闭selinux防火墙:

代码块
#
sed -i 's/=enforcing/=disabled/g'  /etc/selinux/config


2. Redis三主三从--Redis-Cluster

Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。

一组Redis Cluster是由多个Redis实例组成,官方推荐使用6实例,其中3个为主节点,3个为从节点。一旦有主节点发生故障的时候,Redis Cluster可以选举出对应的从节点成为新的主节点,继续对外服务,从而保证服务的高可用性。

注意

当集群中的某个主节点和其对应的从节点同时宕机,集群无法提供服务

当存活的主节点数小于集群总节点数(

即:创建集群时的节点总数)的一半时,集群无法提供服务。

即:创建集群时的节点总数的一半时,集群无法提供服务。

 

Image Modified

系统

IP

对外端口

集群内部端口

Redis版本

角色

Centos 7.6

10.10.41.111

7000

17000

5.0.8

redis-master

Centos 7.6

10.10.41.111

7001

17001

5.0.8

redis-slave

Centos 7.6

10.10.41.112

7000

17000

5.0.8

redis-master

Centos 7.6

10.10.41.112

7001

17001

5.0.8

redis-slave

Centos 7.6

10.10.41.113

7000

17000

5.0.8

redis-master

Centos 7.6

10.10.41.113

7001

17001

5.0.8

redis-slave


2.1 安装Redis

1、联系support获取redis安装包,并上传到服务器

1、获取redis安装包,并上传到服务器


2、解压Redis安装包

代码块
#
tar -zxvf redis-5.0.8.tar.gz  
PS:本文档Redis安装在
#本文档Redis安装在/data目录


3、创建Redis相关工作目录(目录可自定义)

代码块
#
mkdir /data/redis-cluster/{data/{redis_7000,redis_7001},conf,log} -p
#

mkdir /var/run/redis-cluster


4、复制redis配置文件

代码块
#
cd redis-5.0.8
#cp
cp redis.conf /data/redis-cluster/conf/redis_7000.conf
#cp
cp redis.conf /data/redis-cluster/conf/redis_7001.conf


2.1.1 修改Redis配置文件

#vi

修改redis-master配置文件

代码块
vi /data/redis-cluster/conf/redis_7000.

conf   #修改redis-master配置文件
conf 

port 7000             #修改redis监听端口(可以自定义)

Image Modified

bind 0.0.0.0            #表示redis允许所有地址连接。默认127.0.0.1,仅允许本地连接。

Image Modified

daemonize yes             #允许redis后台运行

Image Modified

pidfile /var/run/redis_7000.pid                 #pid存放目录

Image Modified

logfile "/

var

data/redis-cluster/log/redis

-sentinel

_7000.log" 

 #设置Sentinel日志存放路径

 #设置日志存放路径

Image Modified

dir /data/redis-cluster/data/redis_7000 #工作目录

Image Modified

cluster-enabled yes     #是否开启集群

Image Modified

cluster-config-file /data/redis-cluster/conf/nodes_7000.conf

#集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息

#这个文件并不需要手动配置,这个配置文件有Redis生成并更新,

Image Modified

cluster-node-timeout 15000

#节点互连超时的阀值。集群节点超时毫秒数,默认15秒

Image Modified

appendonly yes

#开启redis持久化AOF

Image Modified

requirepass manager    #设置redis密码

Image Modified

masterauth manager    #主从同步master的密码(如果没有设置redis密码,则无需配置)

Image Modified

maxmemory 4gb      #设置Redis实例的最大内存配置,根据服务器实际内存设置

Image Modified

maxmemory-policy allkeys-lfu    

#Redis达到最大内存时的清理key策略

#allkeys-lfu 表示最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的key清除

# vi

 修改redis-slave配置文件

代码块
vi /data/redis-cluster/conf/redis_7001.
conf   #修改redis-slave配置文件,具体如下:
conf 

具体如下:

代码块
port 7001

bind 0.0.0.0

daemonize yes

pidfile /var/run/redis_7001.pid

logfile "/data/redis-cluster/log/redis_7001.log"

dir /data/redis-cluster/data/redis_7001

cluster-enabled yes

cluster-config-file /data/redis-cluster/conf/nodes_7001.conf

cluster-node-timeout 15000

appendonly yes

requirepass manager

masterauth manager


2.1.2 分发到集群内其他服务器

代码块
#
scp -r redis-5.0.8 redis-cluster root@10.10.41.112:/data
#
scp -r redis-5.0.8 redis-cluster root@10.10.41.113:/data

设置软链接,方便启动redis服务

代码块
#
ln -s /data/redis-5.0.8/src/redis-server /usr/bin/redis-server
#
ln -s /data/redis-5.0.8/src/redis-cli /usr/bin/redis-cli

2.1.3 启动Redis

1、启动redis

集群内每台服务器分别启动两个redis

代码块
#
redis-server /data/redis-cluster/conf/redis_7000.conf
#

redis-server /data/redis-cluster/conf/redis_7001.conf

验证是否启动成功

代码块
#
ps -ef | grep redis

Image Modified

查看版本

代码块
#
redis-cli --version
#
redis-server --version


2、设置开机启动redis

Redis安装包中包含了redis启动脚本(默认路径$redis/utils/redis_init_script,$redis是redis的安装路径)。

需要根据自身安装部署实际情况进行修改(如:端口、安装路径、密码等等)

代码块
#
cp /data/redis-5.0.8/utils/redis_init_script  /etc/init.d/redis_7000   
#

cp /data/redis-5.0.8/utils/redis_init_script  /etc/init.d/redis_7001
#
vi /etc/init.d/redis_7000  
#

vi /etc/init.d/redis_7001  

具体请参考附件:

redis_7000redis_7001

复制启动脚本至其他集群服务器

代码块
#
scp /etc/init.d/redis_700* root@10.10.41.112:/etc/init.d
#

scp /etc/init.d/redis_700* root@10.10.41.113:/etc/init.d


加入开机启动(集群内所有服务器均需操作)

代码块
#
chmod +x  /etc/init.d/redis*
#
chkconfig --add redis_7000
#

chkconfig --add redis_7001
#
chkconfig redis_7000 on
#
chkconfig redis_7001 on
#
chkconfig --list

Image Modified

代码块
#
/etc/init.d/redis_7000 start      #启动redis 7000
#

/etc/init.d/redis_7000 stop      #停止redis 7000
#
/etc/init.d/redis_7000 restart    #重启redis 7000

2.2 创建集群Redis-Cluster

创建集群:--cluster-replicas 1指定从库数量1,创建顺序三主-三从。即主-主-主-从-从-从。

如果redis设置了密码,则创建集群时需要添加密码信息 -a 密码

代码块
#
redis-cli -a manager --cluster create 10.10.41.111:7000 10.10.41.112:7000 10.10.41.113:7000 10.10.41.111:7001  10.10.41.112:7001  10.10.41.113:7001 --cluster-replicas 1

Image Modified

确认集群配置信息,确认无误则输入 yes 并按回车

Image Modified

出现以上信息,则表示集群配置成功。

2.3 验证集群Redis-Cluster

1、登录redis集群

代码块
#
redis-cli -a manager -h 10.10.41.111 -p 7000 -c

PS:-a Redis密码,-c表示集群模式 ,指定IP和端口


2、验证集群信息

10.10.41.111:7000> cluster info      #查看集群信息

Image Modified

10.10.41.111:7000> cluster nodes    #查看集群节点列表

Image Modified

查看集群内主从关系:

代码块
#
redis-cli -a manager -h 10.10.41.111 -p 7000 -c cluster slots | xargs  -n8 | awk '{print $3":"$4"->"$6":"$7}' | sort -nk2 -t ':' | uniq

Image Modified


3、进行数据验证操作

插入数据:

10.10.41.111:7000> set mykey "Hello Redis"

10.10.41.113:7000> get mykey

Image Modified

登录其他节点查看数据:

#redis-cli -a manager -h 10.10.41.112 -p 7000 -c

10.10.41.112:7000> get mykey

Image Modified


2.4 Smartbi配置连接redis集群

1、登录访问smartbi config页面

找到“会话缓存”,输入redis地址和端口,缓存服务器地址格式有如下:

1)未设置redis密码,默认存储在redis

找到“会话缓存”,输入redis地址和端口,状态服务器地址格式有如下:

情形格式示例
未设置redis密码,默认存储在redis db0中Redis Maser1 IP地址:端口, Redis Maser2 IP地址:端口,Redis Maser3 IP地址:端口 
即10
10.10.41.111:7000,10.10.41.112:7000,10.10.41.113:7000
2)设置了redis密码,默认存储在redis
设置了redis密码,默认存储在redis db0中

Redis密码@Redis Maser1 IP地址:端口, Redis Maser2 IP地址:端口,Redis Maser3 IP地址:端口  

即manager@10

(多个服务器地址请使用“,”隔开

manager@10.10.41.111:7000,10.10.41.112:7000,10.10.41.113:7000


注意
单机版本的 Redis
集群不像单机版本的 Redis 那样支持多个数据库,集群只有数据库
支持多个数据库,但Redis集群只有数据库 0,而且也不支持 SELECT (切换到指定的数据库)命令。

Image Removed

点击测试连接、提示连接成功即可,保存并重启smartbi

Image Removed

配置完成后重启smartbi服务。

Image Added

点击测试连接,提示连接成功即可,保存并重启Smartbi

2.5 Smartbi验证Redis

1、登录访问smartbi,编辑业务主题

1、登录访问Smartbi,编辑业务主题(或者编辑其他场景),先不要点击保存。

Image Modified

编辑过程中,重启Smartbi服务器,注意重启过程中浏览器不要刷新页面

,smartbi重启完成后,可以直接保存修改个业务主题,编辑的数据不会丢失。

,Smartbi重启完成后,可以直接保存修改个业务主题,编辑的数据不会丢失。

Image Modified

面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid
目录maxLevel3