实验环境
- Laravel 8.22.1
- Ubuntu 20.04
- Redis server 5.0.7
- php 7.4
Laravel redis 分片集群配置参考
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'password' => env('REDIS_CLUSTER_PASSWORD', null),
//当phpredis版本大于4.3.0时,在这里配置redis原生集群密码
],
'clusters' => [
'default' => [
[
'host' => env('REDIS_CLUSTER_HOST_M1', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_M1', 6379),
'database' => 0,
], [
'host' => env('REDIS_CLUSTER_HOST_M2', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_M2', 6379),
'database' => 0,
], [
'host' => env('REDIS_CLUSTER_HOST_M3', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_M3', 6379),
'database' => 0,
], [
'host' => env('REDIS_CLUSTER_HOST_S1', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_S1', 6379),
'database' => 0,
], [
'host' => env('REDIS_CLUSTER_HOST_S2', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_S2', 6379),
'database' => 0,
], [
'host' => env('REDIS_CLUSTER_HOST_S3', 'localhost'),
'port' => env('REDIS_CLUSTER_PORT_S3', 6379),
'database' => 0,
]
],
],
快速创建的创建脚本
#!/bin/bash
mkdir -p redis
cd ./redis
mkdir -p {6381..6386}
dir=$(pwd)
for a in {6381..6386};
do
echo "daemonize yes
port $a
dir "$dir/$a"
pidfile "$dir/$a.pid"
dbfilename "$a.rdb"
logfile "$dir/$a.log"
cluster-enabled yes
cluster-config-file "$dir/$a.conf"
">./config-$a.conf ;
done;
chmod 777 ./*
for a in {6381..6386};
do
/usr/bin/redis-server $dir/config-$a.conf &
done;
启动脚本
redis-cli --cluster create localhost:6381 localhost:6382 localhost:6383 localhost:6384 localhost:6385 localhost:6386 --cluster-replicas 1