Redis------单节点
Redis 介绍
Redis 最常用的功能是作为缓存数据库,保存的数据都存放在内存中,这样读写的速度极快,也分担了主数据库的部分压力。Redis 也可以将保存在内存的数据持久化到硬盘中,这样重启Redis 时,Redis的key:value 数据不会丢失。今天这篇文件只是简单介绍Redis 单节点模式步骤。
Redis 单节点部署
Redis 下载连接:https://download.redis.io/releases/
安装redis 依赖包
yum -y install gcc gcc- c++ make openssl-devel
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
Redis 从版本6.2.0开始支持TLS,所以这里我用的是版本6.2.0来部署redis
使用wget 下载并上传到/data/app/pats_opts 并编译安装
cd /data/app/pats_opts
wget https://download.redis.io/releases/redis-6.2.0.tar.gz
tar -zxvf redis-6.2.0.tar.gz
cd redis-6.2.0
make MALLOC=libc BUILD_TLS=yes #此处开启tls ,不开启的话就不支持tls功能
编辑 redis.conf 配置文件
#vim redis.conf
bind 0.0.0.0
protected-mode no
daemonize yes
pidfile /data/app/pats_opts/redis-6.2.0/pid/redis.pid
logfile "/data/app/pats_opts/redis-6.2.0/log/redis.log"
requirepass 123456
appendonly yes
appendfilename "appendonly.aof"
#配置结束后报错退出,然后启动redis 服务
#启动redis 命令:
cd /data/app/pats_opts/redis-6.2.0
./src/redis-server redis.conf
到这里redis 单节点模式就配置好了。
Redis TLS 配置及客户端配置案例
从Redis 6.2.0版本就开始支持TLS,所以在下载的redis 源码包中有生产TLS证书的文件,直接使用即可
cd /data/app/pats_opts/redis-6.2.0/utils/
./gen-test-certs.sh
#直接这样执行即可生成TLS证书,证书默认有效期是1年,在开发测试环境中如果嫌时间段,可以在gen-test-certs.sh 中手动修改证书有效期时间

证书路径/data/app/pats_opts/redis-6.2.0/utils/tests/tls

证书配置
#将证书从默认路径中复制到指定的tls文件夹下面
cd /data/app/pats_opts/redis-6.2.0
mkdir certs
cp utils/tests/tls/* certs/
#redis.conf 增加tls配置
port 0
tls-port 6379
tls-cert-file /data/app/pats_opts/redis-6.2.0/certs/redis.crt
tls-key-file /data/app/pats_opts/redis-6.2.0/certs/redis.key
tls-dh-params-file /data/app/pats_opts/redis-6.2.0/certs/redis.dh
tls-ca-cert-file /data/app/pats_opts/redis-6.2.0/certs/ca.crt
masterauth "123456"
证书配置后 重启redis 即可
客户端证书格式转换:redis客户端和java 程序
#生成redis 客户端使用的证书格式
cd /data/app/pats_opts/redis-6.2.0/certs
openssl x509 -in ca.crt -out ca.pem -outform PE
openssl x509 -in redis.crt -out redis.pem -outform PE
openssl rsa -in ca.key -out ca_key.pem
openssl rsa -in redis.key -out redis_key.pem
#生成java程序使用的证书格式
openssl pkcs12 -export -in redis.crt -inkey redis.key -out redis_key_store.p12 -passout pass:123456
keytool -import -file ca.crt -alias redis-ca -keystore truststore.jks -storepass 123456
#密码-storepass 自行定义
客户端配置案例

java程序配置案例:
spring.redis.keyStoreFile=/data/app/ssl/redis_key_store.p12
spring.redis.keyStorePassword=123456
spring.redis.trustStoreFile=/data/app/ssl/truststore.jks
spring.redis.trustStorePassword=123456
Redis ACL 配置
大家在用redis时不知道有没有发现,在连接时只需要输入密码即可,不需要输入用户名。在生产安全扫描时,这种情况是不符合的。
Redis 默认user是default,在不填写时,默认就是default,所以只需要输入密码即可。
下面的操作是需要禁用default,手动新增登录信息:user and password
#编辑redis.conf,在配置文件最后面加上如下代码
user default off #禁用默认用户
user redisuser on >123456 ~* +@all #新增用户名:redisuser 密码:123456
#下面还有一种配置方式,不推荐,有点混乱。如下所示
requirepass oldpass
user default on >newpass ~* +@all
user redisuser on >app_pass ~* +@all
#上面配置的有三个认证方式都能登录成功。
#auth oldpass 是默认的认证方式,针对的是默认的default
#auth newpass 是acl新定义的方式
#auth app_pass 是自定义的用户和密码
更多推荐



所有评论(0)