Size: 1408
Comment:
|
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 14: | Line 16: |
apt-get install redis-server redis-sentinel | apt-get install redis-server |
Line 21: | Line 23: |
Make sure the apache servers can reach redis. Change `bind 127.0.0.1` in `/etc/redis/redis.conf`. Each of the redis servers needs to listen on its own IP-address. | Change the contents of the redis configuration file in `/etc/redis/redis.conf`. |
Line 23: | Line 25: |
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 24: | Line 27: |
bind 127.0.0.1 192.168.1.58 | bind 192.168.1.58 127.0.0.1 ::1 |
Line 27: | Line 30: |
Stop the redis server on all hosts. | Enable redis to listen on the network, instead of only listening on the loopback device. |
Line 29: | Line 33: |
service redis-server stop | protected-mode no |
Line 32: | Line 36: |
To enable replication we need to consider one of the redis servers the master. Here it will be redis03. On the two other hosts add the following to `/etc/redis/redis.conf`. | 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. |
Line 34: | Line 38: |
slaveof 192.168.1.60 6379 | appendonly yes |
Line 37: | Line 41: |
Start the redis servers again, but start it on redis03 first. | Activate redis cluster features |
Line 39: | Line 43: |
service redis-server start | cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 |
Line 41: | Line 47: |
redis03 should now be the master. | |
Line 43: | Line 48: |
=== Redis Sentinel === | Restart redis on all hosts. {{{ service redis-server restart }}} |
Line 45: | Line 53: |
The same goes for `/etc/redis/sentinel.conf` | Next we will need to configure the servers to run as a cluster |
Line 47: | Line 55: |
bind 127.0.0.1 192.168.1.58 | redis-cli --cluster create 192.168.1.59:6379 192.168.1.60:6379 192.168.1.61:6379 |
Line 54: | Line 62: |
* https://www.haproxy.com/blog/haproxy-advanced-redis-health-check/ | |
Line 55: | Line 64: |
* 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
https://www.haproxy.com/blog/haproxy-advanced-redis-health-check/
https://blog.usejournal.com/first-step-to-redis-cluster-7712e1c31847
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/