努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Dcoker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Mysql

  • PostgreSQL

  • Redis

    • Redis安装
      • Shell脚本安装
      • redis.conf配置说明
      • redis 持久化方式有哪些?有什么区别?
        • RDB持久化
        • AOF持久化
      • redis其他版本
  • MongoDB

  • ClickHouse

//
  • DBA
  • Redis
yangfk
2021-08-25

Redis安装

//

官网下载网页链接: (opens new window)

# Shell脚本安装

默认关闭防火墙

#!/bin/bash

Path=$(cd $(dirname $0); pwd)
IPAddr=$(ifconfig eth0|awk 'NR==2{print $2}')

read -p "默认redis工作路径在/opt/redis,需要修改吗?注意:修改请输入绝对路径  " path

if [ ! -z ${path} ];then
Dir=${path}
        echo "你的数据库工作路径在 ${Dir} "
else
Dir=/opt/redis
fi
	sleep 2
ping -c 1 223.5.5.5 &>/dev/null
if [ $? -ne 0 ];then
	echo "请检查网路"
	exit 10
else 
	echo "正常网络"
fi

#安装基础依赖包
yum -y install gcc gcc-c++ libstdc++-devel
mkdir -p ${Dir}/{conf,data,logs,bin}

if [ ! -f ${Path}/redis-3.2.12.tar.gz ];then
	wget http://download.redis.io/releases/redis-3.2.12.tar.gz -P ${Path}
fi

cd ${Path} && tar xf ${Path}/redis-3.2.12.tar.gz
cd ${Path}/redis-3.2.12
make PREFIX=${Dir} install
make PREFIX=/usr/local/redis install

#添加开机自启动
cat >/usr/lib/systemd/system/redis.service<<OPO
[Unit]
Description=Redis persistent key-value database
After=network.target
 
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
User=root
Group=root
ExecStart=${Dir}/bin/redis-server ${Dir}/conf/redis-6379.conf
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=${Dir}/bin/redis-cli -p 6379 -h ${IPAddr} shutdown
PrivateTmp=true
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
OPO

#修改配置文件
cp ${Path}/redis-3.2.12/redis.conf ${Dir}/conf
mv ${Dir}/conf/redis.conf ${Dir}/conf/redis-6379.conf
sed -i "s#bind 127.0.0.1#bind ${IPAddr}#g" ${Dir}/conf/redis-6379.conf
sed -i 's#daemonize no#daemonize yes#g' ${Dir}/conf/redis-6379.conf

#修改系统参数
echo 511 >/proc/sys/net/core/somaxconn
echo "vm.overcommit_memory=1" >>/etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled">>/etc/rc.local
echo "export PATH=\$PATH:${Dir}/bin" >>/etc/profile

if ! $(grep 'soft nofile' /etc/security/limits.conf>/dev/null) ;then
cat >> /etc/security/limits.conf <<EOF
* soft nofile 65535
* hard nofile 65536
hive   - nofile 65535
hive   - nproc  65535
EOF
fi

sed -i 's#4096#65535#g'   /etc/security/limits.d/20-nproc.conf  

echo "执行 sourece /etc/profile"
echo "${Dir}/conf/redis-6379.conf"

${Dir}/bin/redis-server ${Dir}/conf/redis-6379.conf &
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

# redis.conf配置说明

redis.conf

参数 说明 示例
daemonize yes 是否后台运行
port 6379 端口
logfile /var/log/redis.log 日志文件位置
dir /data/6379 持久化文件存储位置
dbfilename dump.rdb RDB持久化数据文件
bind 10.0.0.51 redis监听地址
requirepass password123 设置密码
  • requirepass

redis.conf 设置密码:requirepass password123

登录验证

方法一:
[root@db03 ~]# redis-cli -a password123
127.0.0.1:6379> set name zhangsan 
OK
127.0.0.1:6379> exit
方法二:
[root@db03 ~]# redis-cli
127.0.0.1:6379> auth password123
OK
127.0.0.1:6379> set a b
OK
1
2
3
4
5
6
7
8
9
10
11

# redis 持久化方式有哪些?有什么区别?

# RDB持久化

基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能,基于时间点快照(point-in-time snapshot)

优点: 速度快,适合于用做备份,主从复制(主复制集Master-Replicas)也是基于RDB持久化功能实现的。

缺点: 会有数据丢失

  • 持久化核心配置参数:redis.conf
dir /data/6379
dbfilename dump.rdb

save 900 1
save 300 10
save 60 10000

#说明
900秒(15分钟)内有1个更改
300秒(5分钟)内有10个更改
60秒内有10000个更改
1
2
3
4
5
6
7
8
9
10
11

# AOF持久化

以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog

只追加的日志文件,类似与MySQL binlog,记录的是redis的所有变更类操作,以追加形式记录到磁盘日志(文本模式)文件上.

redis 也会定期的清理AOF日志文件

优点: 可以最大程度保证数据不丢

缺点: 日志记录量级比较大

  • 持久化核心配置参数:redis.conf
appendonly yes
appendfsync always
appendfsync everysec
appendfsync no

#说明
yes:是否打开aof日志功能
always:每1个命令,都立即同步到aof,会极大消弱Redis的性能,因为这种模式下每次write后都会调用fsync(Linux为调用fdatasync)。
everysec:为最多每秒调用一次fsync,这种模式性能并不是很糟糕,一般也不会产生毛刺,这归功于Redis引入了BIO线程,所有fsync操作都异步交给了BIO线程。
no:则write后不会有fsync调用,由操作系统自动调度刷磁盘,性能是最好的。由操作系统判断缓冲区大小,统一写入到aof.
1
2
3
4
5
6
7
8
9
10

# redis其他版本

wget http://download.yfklife.cn/blog/dba/redis/redis-3.2.12.tar.gz
wget http://download.yfklife.cn/blog/dba/redis/redis-5.0.12-1.x86_64.rpm
wget http://download.yfklife.cn/blog/dba/redis/redis-bin-4.0.14.gz
wget http://download.yfklife.cn/blog/dba/redis/redis-bin-6.gz

#wget http://download.yfklife.cn/blog/dba/redis/redis-desktop-manager-2020.0.0.0.exe

1
2
3
4
5
6
7
//
点击 -->> 给博主买咖啡 (opens new window)
上次更新: 2022/01/20, 18:14:46
postgreSQL-12编译安装
MongoDB安装

← postgreSQL-12编译安装 MongoDB安装→

最近更新
01
Pod探针
12-20
02
kubeadm证书替换
12-20
03
kubeadm安装k8s(版本1.26.0)
12-16
更多文章>
Theme by Vdoing | Copyright © 2019-2023 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//