lamp+redis

原文链接

环境:

系统:centos
lamp:192.168.1.10
redis主:192.168.1.11
redis从:192.168.1.12

1、redis主安装redis

#用wget下载
yum install wget -y
wget https://download.redis.io/releases/redis-6.2.3.tar.gz

#处理编译源文件包
yum install gcc gcc-c++ make cmake  -y

#解压redis包
tar -zxvf /root/redis-6.2.3.tar.gz
cd /root/redis-6.2.3

#编译和安装redis
make PREFIX=/usr/local/redis install

#复制redis.conf的配置文件到编译后的redis目录
cp /root/redis-6.2.3/redis.conf /usr/local/redis/

#编辑redis的环境变量
tee > /etc/profile.d/redis.sh << 'EOF'
export PATH=/usr/local/redis/bin:$PATH
EOF

#生成环境变量
source /etc/profile.d/redis.sh 
#编辑redis配置的开启后台运行redis服务
sed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/redis.conf

#编辑redis的system
tee > /usr/lib/systemd/system/redis.service << 'EOF'

[Unit]
Description=Redis
Wants=network.target


[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

#加载redis的系统服务配置
systemctl daemon-reload

#启动redis
systemctl enable redis
systemctl start redis

2、lamp安装php-redis

#安装php-redis
yum install php-pecl-redis -y
#若是找不到包则先运行:yum install epel-release

#重启httpd服务
systemctl restart httpd

vim /var/www/html/info.php
<?
phpinfo();
?>

用浏览器输入IP,看到以下图片就成功开启php-redis
在这里插入图片描述

3、Lamp+Redis缓存测试

#在Redis主库操作
#注释掉本地网卡接口
sed -i '75c #bind 127.0.0.1 -::1' /usr/local/redis/redis.conf

#关闭redis安全模式
sed -i  '95c protected-mode no' /usr/local/redis/redis.conf

#在Redis主库操作
sed -i '75a bind 127.0.0.1 192.168.1.11' /usr/local/redis/redis.conf

#在Lamp操作,编辑php连接redis的php脚本
vim /var/www/html/redis.php
<?php
   //连接本地的 Redis 服务
   $redis = new Redis();
   $redis->connect('172.25.0.200', 6379);
   echo "Connection to server successfully";
   //输出换行
   echo "<br/>";
   //查看服务是否运行
   echo "Server is running: " . $redis->ping();
?>

用浏览器输入IP,查看php脚本是否连接redis成功
用浏览器输入IP,查看php脚本是否连接redis成功

#填写redis主库的IP
sed -i "19c \$_config['memory']['redis']['server'] = '192.168.1.11';" /var/www/html/upload/config/config_global.php 

创建论坛测试用户wrzx
在这里插入图片描述
在这里插入图片描述

#在redis主连接客户端查看是否写入redis缓存中
[root@localhost ~]# redis-cli
127.0.0.1:6379> keys *
1) "rGrdX5_onlinelist"
 2) "rGrdX5_common_member_5"
 3) "rGrdX5_onlinerecord"
 4) "rGrdX5_forumlinks"
 5) "rGrdX5_common_member_field_home_4"
 6) "rGrdX5_common_member_field_home_5"
 7) "rGrdX5_usergroups"
 8) "rGrdX5_fields_register"
 9) "rGrdX5_stamptypeid"
10) "rGrdX5_cronnextrun"
11) "rGrdX5_fields_optional"
12) "rGrdX5_usergroup_10"
13) "rGrdX5_style_default"
14) "rGrdX5_historyposts"
15) "rGrdX5_heats"
16) "rGrdX5_ipbanned"
17) "rGrdX5_magic"
18) "rGrdX5_creditrule"
19) "rGrdX5_common_member_4"
20) "rGrdX5_common_member_newprompt_5"
21) "rGrdX5_usergroup_7"
22) "rGrdX5_common_member_status_3"
23) "rGrdX5_common_member_count_4"
24) "rGrdX5_diytemplatename"
25) "rGrdX5_announcements"
26) "rGrdX5_plugin"
27) "rGrdX5_diytemplatenamehome"
28) "rGrdX5_ipctrl"
29) "rGrdX5_setting"
30) "rGrdX5_home_follow_3"
31) "rGrdX5_diytemplatenameforum"
32) "rGrdX5_common_member_count_3"
33) "rGrdX5_common_member_field_home_3"
34) "rGrdX5_pluginlanguage_system"
35) "rGrdX5_forum_index_page_10"
36) "rGrdX5_modreasons"
37) "rGrdX5_common_member_status_4"
38) "rGrdX5_common_member_3"
39) "rGrdX5_userstats"
40) "rGrdX5_fields_required"
41) "rGrdX5_common_member_count_5"
42) "rGrdX5_cronpublish"

删除数据库的test用户

在Lamp操作
#查看数据库的用户名和密码
mysql -u root -p123456

MariaDB [(none)]> use discuz;

MariaDB [discuz]> select username,password from pre_ucenter_members ;
+----------+----------------------------------+
| username | password                         |
+----------+----------------------------------+
| admin    | cd4373d394bf4f7a9b402bba7f2c8f2e |
| test     | f00d1a812e6b746ef50e23616f70cfaa |
| fbx      | 46c7eb780c2d3c68549affb33e645b3e |
| fjf      | 608d4fe565980412a277a45d4fc5c250 |
| wrzx     | 77bbea76f967afa60a8bccddb6d11a14 |
+----------+----------------------------------+
2 rows in set (0.001 sec)

MariaDB [discuz]> delete from pre_ucenter_members where username='wrzx';
Query OK, 1 row affected (0.001 sec)

用浏览器测试是否登录成功
在这里插入图片描述

4、Redis主从复制配置

#redis主配置
cp /usr/local/redis/redis.conf{,.bak}
# 备份配置文件 
# 将配置文件内容修改为如下内容:
bind 127.0.0.1 192.168.1.11
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
#redis从配置
cp /usr/local/redis/redis.conf{,.bak}
#备份 
#配置文件内容
bind 127.0.0.1 192.168.1.12
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
#设置redis主从复制
slaveof 192.168.1.11 6379
#配置后要重启redis服务
systemctl restart redis

测试redis主从复制是否成功

#在redis主库设置键对应的值
[root@localhost ~]# redis-cli
127.0.0.1:6379> set student1 "小星"
OK
127.0.0.1:6379> get student1
"\xe5\xb0\x8f\xe6\x98\x9f"
127.0.0.1:6379> 
#在redis从库查看值

redis-cli
127.0.0.1:6379> get student1
"\xe5\xb0\x8f\xe6\x98\x9f"

redis-cli --raw
# --raw 不显示额外的类型信息与支持显示中文
127.0.0.1:6379> get student1
小星

5、半持久化RDB模式

RDB持久性按指定的时间间隔执行数据集的时间点快照。

#创建存放rdb的目录
mkdir -p  /data/redis

#配置指定数据库镜像存放的目录
sed  -i '456c dir /data/redis' /usr/local/redis/redis.conf 

#一小时内至少1个键更改则进行快照
#5分钟内至少100个键更改则进行快照
#1分钟内至少10000个键更改则进行快照
sed -i -e  "\$a\save 3600 1" -e "\$a\save 300 100" -e "\$a\save 60 10000" /usr/local/redis/redis.conf

#重启redis服务
systemctl restart redis

#查看是否有rdb数据文件的备份
ls /data/redis/
dump.rdb

6、持久化AOF模式

#开启AOF模式
sed -i '1254c appendonly yes' /usr/local/redis/redis.conf

#注释everysec配置redis将fsync数据存储在磁盘上的次数
sed -i  "s/appendfsync everysec/#appendfsync everysec/g" /usr/local/redis/redis.conf 

#开启always配置redis将fsync数据存储在磁盘上的次数
sed -i  "s/# appendfsync always/appendfsync always/g" /usr/local/redis/redis.conf 

#配置后需要重启redis服务
systemctl restart redis

#查看是否有aof数据文件的备份
ls /data/redis/
appendonly.aof  dump.rdb

7、Redis哨兵模式

#复制配置文件到安装到redis的目录下
cp /root/redis-6.2.3/sentinel.conf  /usr/local/redis/

#为sentinel配置IP
sed  -i '84c sentinel monitor mymaster 192.168.1.11 6379 2' /usr/local/redis/sentinel.conf

#启动哨兵
[root@localhost ~]# redis-sentinel  /usr/local/redis/sentinel.conf
2437:X 02 Jul 2023 12:54:03.136 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2437:X 02 Jul 2023 12:54:03.136 # Redis version=6.2.3, bits=64, commit=00000000, modified=0, pid=2437, just started
2437:X 02 Jul 2023 12:54:03.136 # Configuration loaded
2437:X 02 Jul 2023 12:54:03.137 * Increased maximum number of open files to 10032 (it was originally set to 1024).
2437:X 02 Jul 2023 12:54:03.137 * monotonic clock: POSIX clock_gettime
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.2.3 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
 (    '      ,       .-`  | `,    )     Running in sentinel mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
 |    `-._   `._    /     _.-'    |     PID: 2437
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           https://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

2437:X 02 Jul 2023 12:54:03.138 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2437:X 02 Jul 2023 12:54:03.143 # Sentinel ID is c3328b7e489ade9f983b549c736c9122ec252643
2437:X 02 Jul 2023 12:54:03.143 # +monitor master mymaster 192.168.1.11 6379 quorum 2
2437:X 02 Jul 2023 12:54:03.144 * +slave slave 192.168.1.12:6379 192.168.1.12 6379 @ mymaster 192.168.1.11 6379
2437:X 02 Jul 2023 12:54:33.182 # +sdown slave 192.168.1.12:6379 192.168.1.12 6379 @ mymaster 192.168.1.11 6379


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值