Differences between revisions 4 and 25 (spanning 21 versions)
Revision 4 as of 2020-02-11 22:05:27
Size: 695
Comment:
Revision 25 as of 2021-01-02 01:49:28
Size: 2605
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
DISCLAIMER
THIS ONLY WORKS IN BUSTER
Line 7: Line 9:
 * 192.168.1.58 redis01
 * 192.168.1.59 redis02
 * 192.168.1.60 redis03
 * 192.168.1.59 redis01
 * 192.168.1.60 redis02
 * 192.168.1.61 redis03
Line 19: Line 21:
Make sure the apache servers can reach redis. Change `bind 127.0.0.1` in `/etc/redis/redis.conf`. Each of the redis server needs to listen on its own IP-address. === Redis Server ===
Line 21: Line 23:
Change the contents of the redis configuration file in `/etc/redis/redis.conf`.

Add the IP-address for each of the servers. Each of the redis servers needs to listen on its own IP-address. Due to a bug in redis, the added IP-address will have to be in the beginning of the line, right next to `bind`. If the IP-address is added in the end of the line, then the cluster will not initialize itself, and `Waiting for the cluster to join` message wil continuously write dots.
Line 22: Line 27:
bind 127.0.0.1 192.168.1.58 bind 192.168.1.58 127.0.0.1 ::1
Line 26: Line 31:
Enable redis to listen on the network, instead of only listening on the loopback device.
{{{
protected-mode no
}}}
Line 27: Line 36:
Redis stores its data in memory only, hence its speed. To make sure redis does not loose its state, in case of a hardware failure, this will enable it to store the state as it changes in a file on disk.
{{{
appendonly yes
}}}

Activate redis cluster features
{{{
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
}}}

Restart redis on all hosts.
{{{
service redis-server restart
}}}

Next we will need to configure the servers to run as a cluster
{{{
redis-cli --cluster create 192.168.1.59:6379 192.168.1.60:6379 192.168.1.61:6379
}}}
Line 32: Line 62:
 * https://www.haproxy.com/blog/haproxy-advanced-redis-health-check/
 * https://medium.com/@amila922/redis-sentinel-high-availability-everything-you-need-to-know-from-dev-to-prod-complete-guide-deb198e70ea6
 * https://blog.usejournal.com/first-step-to-redis-cluster-7712e1c31847
 * https://www.linode.com/docs/applications/big-data/how-to-install-and-configure-a-redis-cluster-on-ubuntu-1604/
 * https://www.willandskill.se/en/setup-a-highly-available-redis-cluster-with-sentinel-and-haproxy/
 * https://www.tecmint.com/setup-redis-replication-in-centos-8/
 * https://www.tecmint.com/setup-redis-high-availability-with-sentinel-in-centos-8/
 * https://www.tecmint.com/setup-redis-cluster-in-centos-8/
 * https://stackoverflow.com/questions/39568561/how-to-solve-redis-cluster-waiting-for-the-cluster-to-join-issue

DISCLAIMER THIS ONLY WORKS IN BUSTER INCOMPLETE DO NOT USE

Redis

Redis is an in memory data structure storage. It will be used to share PHP-sessions between the apache servers. To guarantee a robust deployment three redis servers will be configured.

  • 192.168.1.59 redis01
  • 192.168.1.60 redis02
  • 192.168.1.61 redis03

Software

apt-get install redis-server

Configuration

Redis Server

Change the contents of the redis configuration file in /etc/redis/redis.conf.

Add the IP-address for each of the servers. Each of the redis servers needs to listen on its own IP-address. Due to a bug in redis, the added IP-address will have to be in the beginning of the line, right next to bind. If the IP-address is added in the end of the line, then the cluster will not initialize itself, and Waiting for the cluster to join message wil continuously write dots.

bind 192.168.1.58 127.0.0.1 ::1

Enable redis to listen on the network, instead of only listening on the loopback device.

protected-mode no

Redis stores its data in memory only, hence its speed. To make sure redis does not loose its state, in case of a hardware failure, this will enable it to store the state as it changes in a file on disk.

appendonly yes

Activate redis cluster features

cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000

Restart redis on all hosts.

service redis-server restart

Next we will need to configure the servers to run as a cluster

redis-cli --cluster create 192.168.1.59:6379 192.168.1.60:6379 192.168.1.61:6379

References

None: Redis (last edited 2022-01-03 22:09:21 by Kristian Kallenberg)