页面树结构

版本比较

标识

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

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

注意

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三主三从(端口可自定义):

修改主节点监听端口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单机安装部署

部署Smartbi-Redis

2.1 安装Redis

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

1、上传redis安装包到服务器

2、解压Redis安装包

代码块
# tar -zxvf redis-5.0.8.tar.gz  
# cd redis-5.0.8

PS:本文档Redis安装在/data目录

2.2 配置redis

1、修改Redis配置文件

代码块
# vi redis.
conf 
conf

bind 0.0.0.0

           #表示redis允许所有地址连接。默认127

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

Image Removed

Image Added

daemonize yes 

           #允许redis后台运行

           # 允许redis后台运行

Image Modified

logfile "/var/log/redis.log"    #设置redis 日志存放路径

Image Modified

requirepass manager        #设置redis密码

Image Modified

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

Image Modified

maxmemory-policy allkeys-lfu    

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

#allkeys-

lfu

lru 表示最近最不经常使用算法,从所有的键中选择某段时间之内使用频次最少的键值对清除

Image Removed

Image Added


2、添加软链接,方便服务启动。

代码块
# 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

Image Modified


2.3 启动&访问Redis

1、启动Redis

代码块
# redis-server /data/redis-5.0.8/redis.conf
# ps -ef | grep redis

Image Modified

2、访问Redis

代码块
# redis-cli -h 127.0.0.1 -p 6379   

也可以使用服务器IP地址:# redis-cli -h 10.10.41.123 -p 6379  

Image Modified

由于redis设置了密码,无法直接查看数据,需要输入密码验证:

# auth manager       #manager即redis.conf中设置的密码

Image Modified

3、设置redis开机启动


2.4 设置redis开机启动

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

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

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

具体请参考附件:

redis

 如下图所示:

Image Modified

代码块
# chmod +x /etc/init.d/redis
# chkconfig --add redis 
# chkconfig redis on
# chkconfig --list   #查看所有注册的脚本文件

Image Modified

代码块
title其他指令
linenumberstrue
# /etc/init.d/redis start      #启动redis
# /etc/init.d/redis stop      #停止redis
# /etc/init.d/redis restart    #重启redis
Linux


至此,Linux Redis单机版部署完成。

2.

4

5 Smartbi配置连接单机redis

1、登录访问smartbi config页面

  • 登录访问smartbi config页面,找到会话缓存
,输入redis地址和端口,缓存服务器地址格式有如下:2、未设置redis密码,默认存储在redis
  • ,输入redis地址和端口,状态服务器地址格式有如下:
情形格式示例
未设置redis密码,默认存储在redis db0中IP地址:
端口    即10
端口10.10.41.123:6379
3、未设置redis密码,指定存储的数据库中
未设置redis密码,指定存储的数据库中(如 db1)IP地址:端口/N
   即10
10.10.41.123:6379/1
4、设置了redis密码,默认存储在redis
设置了redis密码,默认存储在redis db0中Redis密码@IP地址:
端口  即manager@10
端口manager@10.10.41.123:6379
5、设置了redis密码,指定存储的数据库中
设置了redis密码,指定存储的数据库中(如 db1)Redis密码@IP地址:端口/
N  即manager@10
Nmanager@10.10.41.123:6379/1
Image Removed

Image Added

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

Image Removed

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


2.

5

6 Smartbi验证Redis

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

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

Image Modified

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

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

Image Removed

3. Redis三主三从--Redis-Cluster

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

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

注意

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

当存活的主节点数小于集群总节点数(即:创建集群时的节点总数)的一半时,集群无法提供服务。

 

Image Removed

系统

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

3.1 安装Redis

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

2、解压Redis安装包

代码块
# tar -zxvf redis-5.0.8.tar.gz  PS:本文档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 redis.conf /data/redis-cluster/conf/redis_7000.conf
#cp redis.conf /data/redis-cluster/conf/redis_7001.conf

3.1.1 修改Redis配置文件

#vi /data/redis-cluster/conf/redis_7000.conf   #修改redis-master配置文件

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

Image Removed

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

Image Removed

daemonize yes             #允许redis后台运行

Image Removed

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

Image Removed

logfile "/var/log/redis-sentinel.log"   #设置Sentinel日志存放路径

Image Removed

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

Image Removed

cluster-enabled yes     #是否开启集群

Image Removed

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

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

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

Image Removed

cluster-node-timeout 15000

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

Image Removed

appendonly yes

#开启redis持久化AOF

Image Removed

requirepass manager    #设置redis密码

Image Removed

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

Image Removed

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

Image Removed

maxmemory-policy allkeys-lfu    

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

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

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

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

3.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

3.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 Removed

查看版本

代码块
# 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 Removed

代码块
# /etc/init.d/redis_7000 start      #启动redis 7000
# /etc/init.d/redis_7000 stop      #停止redis 7000
# /etc/init.d/redis_7000 restart    #重启redis 7000

3.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 Removed

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

Image Removed

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

3.3 验证集群Redis-Cluster

1、登录redis集群

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

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

2、验证集群信息

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

Image Removed

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

Image Removed

查看集群内主从关系:

代码块
# 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 Removed

3、进行数据验证操作

插入数据:

10.10.41.111:7000> set mykey "Hello Redis"

10.10.41.113:7000> get mykey

Image Removed

登录其他节点查看数据:

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

10.10.41.112:7000> get mykey

Image Removed

3.4 Smartbi配置连接redis集群

1、登录访问smartbi config页面

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

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

Redis Maser1 IP地址:端口, Redis Maser2 IP地址:端口,Redis Maser3 IP地址:端口  即10.10.41.111:7000,10.10.41.112:7000,10.10.41.113:7000

2)设置了redis密码,默认存储在redis db0中

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

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

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

Image Removed

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

Image Removed

配置完成后重启smartbi服务。

3.5 Smartbi验证Redis

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

Image Removed

编辑过程中,重启Smartbi服务器,注意重启过程中浏览器不要刷新页面,smartbi重启完成后,可以直接保存修改个业务主题,编辑的数据不会丢失。

Image Removed

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

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

Image Added