{"id":16366694,"url":"https://github.com/centminmod/centminmod-redis","last_synced_at":"2025-03-23T02:32:39.123Z","repository":{"id":80279632,"uuid":"84998668","full_name":"centminmod/centminmod-redis","owner":"centminmod","description":"Tools \u0026 scripts for generating redis replication, redis cluster or redis standalone server setups on centminmod.com LEMP stacks or CentOS 7 or RHEL 7 based servers","archived":false,"fork":false,"pushed_at":"2022-03-25T12:12:50.000Z","size":1155,"stargazers_count":10,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-18T16:52:49.831Z","etag":null,"topics":["centminmod","redis","redis-cache","redis-cluster","redis-replication","redis-sentinel","redis-server"],"latest_commit_sha":null,"homepage":"https://centminmod.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/centminmod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-14T21:24:55.000Z","updated_at":"2023-01-13T07:54:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"28746619-2d39-456a-aedf-4af3290b298a","html_url":"https://github.com/centminmod/centminmod-redis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centminmod%2Fcentminmod-redis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centminmod%2Fcentminmod-redis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centminmod%2Fcentminmod-redis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/centminmod%2Fcentminmod-redis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/centminmod","download_url":"https://codeload.github.com/centminmod/centminmod-redis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245047977,"owners_count":20552430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["centminmod","redis","redis-cache","redis-cluster","redis-replication","redis-sentinel","redis-server"],"created_at":"2024-10-11T02:47:16.820Z","updated_at":"2025-03-23T02:32:39.098Z","avatar_url":"https://github.com/centminmod.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Info:\n=======\n\nRedis server generator to create multiple Redis servers in standalone, replication (+ optional sentinel setup) and cluster enabled configurations on local listener `127.0.0.1` with starting port `STARTPORT=6479` and incrementally created additional redis servers via integer passed on `redis-generator.sh` command line. Written for CentOS 7 only with [centminmod.com](https://centminmod.com) LEMP stacks specifically though should work on any CentOS 7 or RHEL 7 based system.\n\n### Redis Source Install Support\n\n* Optional redis source install support has been added. Example of using `redis-generator.sh` with [redis 4.x source installed](examples/redis-sourceinstall-support.md).\n\nRequirements:\n=======\n\n* Redis 6.2.0+ or higher branch is required and must be installed prior to using `redis-generator.sh`\n* [Remi YUM repository](https://blog.remirepo.net/pages/Config-en) if you want to install redis server via Remi YUM repo for latest Redis 6.0 branch. [centminmod.com](https://centminmod.com) auto installer already installs Remi YUM repo.\n* Optional: [stunnel](https://www.stunnel.org/index.html) for secure TLS encrypted redis remote connections.\n\n```\nyum list stunnel -q\nInstalled Packages\nstunnel.x86_64      5.41-1.el7.centos      installed\n\nrpm -qa --changelog stunnel | head -3\n* Sun Jul 16 2017 George Liu \u003ccentminmod.com\u003e\n- custom stunnel 5.41 rpm built for centminmod.com\n```\n\nRedis Server Install:\n=======\n\nFor [Centmin Mod LEMP web stacks](https://centminmod.com), installing redis 6.2.x branch is simple as using these SSH command steps or using `redis-install.sh` script:\n\n`redis-install.sh` script\n\n    ./redis-install.sh install\n\nManual install steps provided you have installed Remi YUM repository first - which Centmin Mod LEMP stacks already have done.\n\n    yum -y install redis --enablerepo=remi --disableplugin=priorities\n    sed -i 's|LimitNOFILE=.*|LimitNOFILE=262144|' /etc/systemd/system/redis.service.d/limit.conf\n    mkdir -p /var/run/redis\n    chown redis:redis /var/run/redis\n    chmod 755 /var/run/redis\n    systemctl daemon-reload\n    systemctl start redis\n    systemctl enable redis\n    echo \"vm.overcommit_memory = 1\" \u003e\u003e /etc/sysctl.conf\n    echo never \u003e /sys/kernel/mm/transparent_hugepage/enabled\n    echo \"echo never \u003e /sys/kernel/mm/transparent_hugepage/enabled\" \u003e\u003e /etc/rc.local\n    sysctl -p\n\nIf redis isn't installed `redis-generator.sh` will alert you\n\n    ./redis-generator.sh \n    \n    /usr/lib/systemd/system/redis.service not found\n    Script is for CentOS 7 only and requires redis\n    server installed first\n\nRedis 6 Server Changes:\n=======\n\nUpdating from Redis 5.x to Redis 6.x may result in additional Redis servers created via `redis-generator.sh` not being able to start up properly - particularly on server reboot. This is due to changes with Redis 6.x and probably CentOS 7.8 systemd updates/changes. The below outlined changes will fix this startup issue for Redis 6 servers on CentOS 7.\n\n1. Redis systemd service file's listed `RuntimeDirectory=redis` option seems to now actually work on CentOS 7.8 (maybe due to systemd changes/updates ?) to create the Redis runtime directory at `/var/run/redis`. Prior, this didn't work with Redis 5.x, so had created `/etc/tmpfiles.d/redis.conf` to create the runtime directory. But now that Redis 6 systemd service file's `RuntimeDirectory=redis` runtime option works, it will conflict with previously created `/etc/tmpfiles.d/redis.conf` so this file needs removal so as to not conflict and prevent the additional Redis generated instances from booting up on server reboots. `redis-generator.sh` has been updated with this fix for newly generated Redis server instances. But for existing Redis servers, you will need to manually remove `/etc/tmpfiles.d/redis.conf`.\n\n```\ncd  /etc/tmpfiles.d/\nrm -f  /etc/tmpfiles.d/redis.conf\n```\n\n2. Redis systemd service files for additional Redis servers created via `redis-generator.sh` on Redis 6 updated servers need an additional changes in their service file as at July 2020:\n\nExample `/usr/lib/systemd/system/redis6479.service` service file for Redis on port 6479 now has it's own runtime directory at `/var/run/6479`\n\nchange from\n\n```\nRuntimeDirectory=redis\n```\n\nchange to\n\n```\nRuntimeDirectory=redis6479\nRuntimeDirectoryMode=0755\nExecStartPost=/bin/sh -c \"echo $MAINPID \u003e /var/run/redis6479/redis_6479.pid\"\n```\n\nand Redis 6479 port server's redis config file has `daemonize no` set\n\n```\ngrep ^daemonize /etc/redis6479/redis6479.conf\ndaemonize no\n```\n\nUsage:\n=======\n\nDefault is to create the redis servers via TCP ports. You can edit `UNIXSOCKET='y'` variable to enable using Unix sockets instead\n\n    ./redis-generator.sh\n    \n    * Usage: where X equal postive integer for number of redis\n    servers to create with incrementing TCP redis ports\n    starting at STARTPORT=6479.\n    * prep - standalone prep command installs redis-cluster-tool\n    * prepupdate - standalone prep update command updates redis-cluster-tool\n    * multi X - no. of standalone redis instances to create\n    * multi-cache X - no. of standalone redis instances + disable ondisk persistence\n    * clusterprep X - no. of cluster enabled config instances\n    * clustermake 6 - to enable cluster mode + create cluster\n    * clustermake 9 - flag to enable cluster mode + create cluster\n    * replication X - create redis replication\n    * replication X 6579 - create replication with custom start port 6579\n    * replication-cache X - create redis replication + disable ondisk persistence\n    * replication-cache X 6579 - create replication with custom start port 6579\n    * delete X - no. of redis instances to delete\n    * delete X 6579 - no. of redis instances to delete + custom start port 6579\n    \n    ./redis-generator.sh prep\n    ./redis-generator.sh prepupdate\n    ./redis-generator.sh multi X\n    ./redis-generator.sh multi-cache X\n    ./redis-generator.sh clusterprep X\n    ./redis-generator.sh clustermake 6\n    ./redis-generator.sh clustermake 9\n    ./redis-generator.sh replication X\n    ./redis-generator.sh replication X 6579\n    ./redis-generator.sh replication-cache X\n    ./redis-generator.sh replication-cache X 6579\n    ./redis-generator.sh delete X\n    ./redis-generator.sh delete X 6579\n\nFor `clustermake` options you need to install [redis-cluster-tool](https://github.com/deep011/redis-cluster-tool)  via `prep` command\n\n    ./redis-generator.sh prep\n\nWhen you create 2 redis servers via command:\n\n    ./redis-generator.sh multi 2\n\nYou will create:\n\n* 2 redis server starting at `STARTPORT=6479` for redis on `6479` and `6480` TCP ports.\n* redis systemd files for controlling each redis server at `/usr/lib/systemd/system/redis6479.service` and `/usr/lib/systemd/system/redis6480.service`\n* redis pid files at `/var/run/redis/redis_6479.pid` and `/var/run/redis/redis_6480.pid`\n* dedicated redis directories for each redis server instance at `/etc/redis6479` and `/etc/redis6480`\n* main `/usr/bin/redis-server` binary gets symlinked to dedicated redis directories at `/etc/redis6479/redis-server` and `/etc/redis6480/redis-server`\n* dedicated redis config files at `/etc/redis6479/redis6479.conf` and `/etc/redis6479/redis6480.conf` \n* each config file will have `dbfilename` as `dump6479.rdb` and `dump6480.rdb` with commented out unix sockets at `/var/run/redis/redis6479.sock` and `/var/run/redis6480/redis6480.sock`\n* dedicated redis data directories at `/var/lib/redis6479` and `/var/lib/redis6480`\n* if `cluster` flag is used, each redis config file will reference a `cluster-config-file` in format of `cluster-config-file nodes-150317-003235.conf` where date/timestamped\n\nIf you want to create multiple redis grouped clusters, you could make a copy of `redis-generator.sh` as `redis-generator2.sh` and just edit the `STARTPORT=6479` starting port variable to say `STARTPORT=6579`\n\n    ./redis-generator.sh multi 2\n    ./redis-generator2.sh multi 2\n\nThis would create 2x2 sets of redis servers where one set uses TCP ports `6479` and `6480` and other set uses TCP ports `6579` and `6580`\n\n    ps aufxw | grep redis-server | grep -v grep\n    redis    20835  0.1  0.1 142896  2476 ?        Ssl  02:09   0:00 /etc/redis6479/redis-server 127.0.0.1:6479\n    redis    20902  0.2  0.1 142896  2476 ?        Ssl  02:09   0:00 /etc/redis6480/redis-server 127.0.0.1:6480\n    redis    20989  0.1  0.1 142896  2476 ?        Ssl  02:09   0:00 /etc/redis6579/redis-server 127.0.0.1:6579\n    redis    21056  0.1  0.1 142896  2476 ?        Ssl  02:09   0:00 /etc/redis6580/redis-server 127.0.0.1:6580\n\nInstall \u0026 Update redis-cluster-tool:\n=======\n\n[redis-cluster-tool](https://github.com/deep011/redis-cluster-tool) is used to join multiple cluster enabled redis server configs created via `redis-generator.sh` into a redis cluster\n\nTo install redis-cluster-tool\n\n    ./redis-generator.sh prep\n\nTo update redis-cluster tool\n\n    ./redis-generator.sh prepupdate\n\nExamples:\n=======\n\nBelow are various examples. For specific redis 9 node cluster setup with auto run of `redis-cluster-tool` example, check this [example](examples/redis-cluster-9.md).\n\nWith `DEBUG_REDISGEN='y'` for dry run debug run checks\n\n    ./redis-generator.sh multi 2              \n    \n    Creating redis servers starting at TCP = 6479...\n    -------------------------------------------------------\n    creating redis server: redis6479.service [increment value: 0]\n    redis TCP port: 6479\n    create systemd redis6479.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6479.service\n    create /etc/redis6479/redis6479.conf config file\n    mkdir -p /etc/redis6479\n    cp -a /etc/redis/redis.conf /etc/redis6479/redis6479.conf\n    mkdir -p /etc/systemd/system/redis6479.service.d/\n    \\cp -af /etc/systemd/system/redis.service.d/limit.conf /etc/systemd/system/redis6479.service.d/limit.conf\n    sed -i \"s|^port 6379|port 6479|\" /etc/redis6479/redis6479.conf\n    mkdir -p /var/lib/redis6479\n    chown -R redis:redis /var/lib/redis6479\n    \\cp -af /usr/bin/redis-server /etc/redis6479/redis-server\n    sed -i \"s|\\/usr\\/bin\\/redis-server|\\/etc\\/redis6479\\/redis-server|\" /usr/lib/systemd/system/redis6479.service\n    sed -i \"s|dir \\/var\\/lib\\/redis\\/|dir \\/var\\/lib\\/redis6479|\" /etc/redis6479/redis6479.conf\n    sed -i 's|^daemonize no|daemonize yes|' /etc/redis6479/redis6479.conf\n    sed -i \"s|cluster-config-file nodes-6379.conf|cluster-config-file nodes-6479.conf|\" /etc/redis6479/redis6479.conf\n    sed -i \"s|unixsocket \\/tmp\\/redis.sock|unixsocket \\/var\\/run\\/redis\\/redis6479.sock|\" /etc/redis6479/redis6479.conf\n    sed -i \"s|pidfile \\/var\\/run\\/redis_6379.pid|pidfile \\/var\\/run\\/redis\\/redis_6479.pid|\" /etc/redis6479/redis6479.conf\n    sed -i \"s|\\/var\\/log\\/redis\\/redis.log|\\/var\\/log\\/redis\\/redis6479.log|\" /etc/redis6479/redis6479.conf\n    sed -i \"s|dbfilename dump.rdb|dbfilename dump6479.rdb|\" /etc/redis6479/redis6479.conf\n    sed -i \"s|appendfilename \"appendonly.aof\"|appendfilename \"appendonly6479.aof\"|\" /etc/redis6479/redis6479.conf\n    echo \"#masterauth abc123\" \u003e\u003e /etc/redis6479/redis6479.conf\n    sed -i \"s|\\/etc\\/redis.conf|\\/etc\\/redis6479\\/redis6479.conf|\" /usr/lib/systemd/system/redis6479.service\n    systemctl daemon-reload\n    systemctl restart redis6479\n    systemctl enable redis6479\n    Redis TCP 6479 Info:\n    redis-cli -h 127.0.0.1 -p 6479 INFO SERVER | egrep 'redis_version|redis_mode|process_id|tcp_port|uptime|executable|config_file'\n    -------------------------------------------------------\n    creating redis server: redis6480.service [increment value: 1]\n    redis TCP port: 6480\n    create systemd redis6480.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6480.service\n    create /etc/redis6480/redis6480.conf config file\n    mkdir -p /etc/redis6480\n    cp -a /etc/redis/redis.conf /etc/redis6480/redis6480.conf\n    mkdir -p /etc/systemd/system/redis6480.service.d/\n    \\cp -af /etc/systemd/system/redis.service.d/limit.conf /etc/systemd/system/redis6480.service.d/limit.conf\n    sed -i \"s|^port 6379|port 6480|\" /etc/redis6480/redis6480.conf\n    mkdir -p /var/lib/redis6480\n    chown -R redis:redis /var/lib/redis6480\n    \\cp -af /usr/bin/redis-server /etc/redis6480/redis-server\n    sed -i \"s|\\/usr\\/bin\\/redis-server|\\/etc\\/redis6480\\/redis-server|\" /usr/lib/systemd/system/redis6480.service\n    sed -i \"s|dir \\/var\\/lib\\/redis\\/|dir \\/var\\/lib\\/redis6480|\" /etc/redis6480/redis6480.conf\n    sed -i 's|^daemonize no|daemonize yes|' /etc/redis6480/redis6480.conf\n    sed -i \"s|cluster-config-file nodes-6379.conf|cluster-config-file nodes-6480.conf|\" /etc/redis6480/redis6480.conf\n    sed -i \"s|unixsocket \\/tmp\\/redis.sock|unixsocket \\/var\\/run\\/redis\\/redis6480.sock|\" /etc/redis6480/redis6480.conf\n    sed -i \"s|pidfile \\/var\\/run\\/redis_6379.pid|pidfile \\/var\\/run\\/redis\\/redis_6480.pid|\" /etc/redis6480/redis6480.conf\n    sed -i \"s|\\/var\\/log\\/redis\\/redis.log|\\/var\\/log\\/redis\\/redis6480.log|\" /etc/redis6480/redis6480.conf\n    sed -i \"s|dbfilename dump.rdb|dbfilename dump6480.rdb|\" /etc/redis6480/redis6480.conf\n    sed -i \"s|appendfilename \"appendonly.aof\"|appendfilename \"appendonly6480.aof\"|\" /etc/redis6480/redis6480.conf\n    echo \"#masterauth abc123\" \u003e\u003e /etc/redis6480/redis6480.conf\n    sed -i \"s|\\/etc\\/redis.conf|\\/etc\\/redis6480\\/redis6480.conf|\" /usr/lib/systemd/system/redis6480.service\n    systemctl daemon-reload\n    systemctl restart redis6480\n    systemctl enable redis6480\n    Redis TCP 6480 Info:\n    redis-cli -h 127.0.0.1 -p 6480 INFO SERVER | egrep 'redis_version|redis_mode|process_id|tcp_port|uptime|executable|config_file'\n\nWith `DEBUG_REDISGEN='n'` for live run and generation of redis servers with X = 1 meaning create 2x redis servers on starting port `6479` and `6480` (port incremented by 1)\n\n    ./redis-generator.sh multi 2\n    \n    Creating redis servers starting at TCP = 6479...\n    -------------------------------------------------------\n    creating redis server: redis6479.service [increment value: 0]\n    redis TCP port: 6479\n    create systemd redis6479.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6479.service\n    create /etc/redis6479/redis6479.conf config file\n    mkdir -p /etc/redis6479\n    cp -a /etc/redis/redis.conf /etc/redis6479/redis6479.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6479/redis6479.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6479.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6479.service to /usr/lib/systemd/system/redis6479.service.\n    ## Redis TCP 6479 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:11670\n    tcp_port:6479\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6479/redis-server\n    config_file:/etc/redis6479/redis6479.conf\n    -------------------------------------------------------\n    creating redis server: redis6480.service [increment value: 1]\n    redis TCP port: 6480\n    create systemd redis6480.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6480.service\n    create /etc/redis6480/redis6480.conf config file\n    mkdir -p /etc/redis6480\n    cp -a /etc/redis/redis.conf /etc/redis6480/redis6480.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6480/redis6480.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6480.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6480.service to /usr/lib/systemd/system/redis6480.service.\n    ## Redis TCP 6480 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:11738\n    tcp_port:6480\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6480/redis-server\n    config_file:/etc/redis6480/redis6480.conf\n\n```\nsystemctl status redis6479\n● redis6479.service - Redis persistent key-value database\n   Loaded: loaded (/usr/lib/systemd/system/redis6479.service; enabled; vendor preset: disabled)\n  Drop-In: /etc/systemd/system/redis6479.service.d\n           └─limit.conf\n   Active: active (running) since Wed 2017-03-15 17:43:50 UTC; 25s ago\n Main PID: 11670 (redis-server)\n   CGroup: /system.slice/redis6479.service\n           └─11670 /etc/redis6479/redis-server 127.0.0.1:6479\n\nMar 15 17:43:50 centos7.localdomain systemd[1]: Started Redis persistent key-value database.\nMar 15 17:43:50 centos7.localdomain systemd[1]: Starting Redis persistent key-value database...\n```\n\n```\nsystemctl status redis6480\n● redis6480.service - Redis persistent key-value database\n   Loaded: loaded (/usr/lib/systemd/system/redis6480.service; enabled; vendor preset: disabled)\n  Drop-In: /etc/systemd/system/redis6480.service.d\n           └─limit.conf\n   Active: active (running) since Wed 2017-03-15 17:43:50 UTC; 27s ago\n Main PID: 11738 (redis-server)\n   CGroup: /system.slice/redis6480.service\n           └─11738 /etc/redis6480/redis-server 127.0.0.1:6480\n\nMar 15 17:43:50 centos7.localdomain systemd[1]: Started Redis persistent key-value database.\nMar 15 17:43:50 centos7.localdomain systemd[1]: Starting Redis persistent key-value database...\n```\n\nTo remove created redis servers, append `delete` flag on end:\n\n    ./redis-generator.sh delete 2\n    \n    -------------------------------------------------------\n    Deleting redis6479.service ...\n    Removed symlink /etc/systemd/system/multi-user.target.wants/redis6479.service.\n    -------------------------------------------------------\n    Deleting redis6480.service ...\n    Removed symlink /etc/systemd/system/multi-user.target.wants/redis6480.service.\n    Deletion completed\n\n\nCreate 2 redis servers with `UNIXSOCKET='y'` enabled for redis Unix socket usage instead of TCP ports\n=========\n\n    ./redis-generator.sh multi 2 \n    \n    Creating redis servers starting at TCP = 6479...\n    -------------------------------------------------------\n    creating redis server: redis6479.service [increment value: 0]\n    redis TCP port: 6479\n    create systemd redis6479.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6479.service\n    create /etc/redis6479/redis6479.conf config file\n    mkdir -p /etc/redis6479\n    cp -a /etc/redis/redis.conf /etc/redis6479/redis6479.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6479/redis6479.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6479.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6479.service to /usr/lib/systemd/system/redis6479.service.\n    ## Redis TCP 6479 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:11919\n    tcp_port:0\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6479/redis-server\n    config_file:/etc/redis6479/redis6479.conf\n    -------------------------------------------------------\n    creating redis server: redis6480.service [increment value: 1]\n    redis TCP port: 6480\n    create systemd redis6480.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6480.service\n    create /etc/redis6480/redis6480.conf config file\n    mkdir -p /etc/redis6480\n    cp -a /etc/redis/redis.conf /etc/redis6480/redis6480.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6480/redis6480.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6480.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6480.service to /usr/lib/systemd/system/redis6480.service.\n    ## Redis TCP 6480 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:11990\n    tcp_port:0\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6480/redis-server\n    config_file:/etc/redis6480/redis6480.conf\n\nredis server via Unix socket `/var/run/redis/redis6479.sock`\n\n    redis-cli -s /var/run/redis/redis6479.sock INFO SERVER\n    # Server\n    redis_version:3.2.8\n    redis_git_sha1:00000000\n    redis_git_dirty:0\n    redis_build_id:dd923e72e9efa6d8\n    redis_mode:standalone\n    os:Linux 3.10.0-514.10.2.el7.x86_64 x86_64\n    arch_bits:64\n    multiplexing_api:epoll\n    gcc_version:4.8.5\n    process_id:11919\n    run_id:2f72840fbe18342fdf57a24ff681997f9f08c26c\n    tcp_port:0\n    uptime_in_seconds:27\n    uptime_in_days:0\n    hz:10\n    lru_clock:13204966\n    executable:/etc/redis6479/redis-server\n    config_file:/etc/redis6479/redis6479.conf\n\nCreate 2 redis server master + slave replication on ports 6479 and 6480\n=========\n\n    ./redis-generator.sh replication 2\n    \n    Creating redis servers starting at TCP = 6479...\n    -------------------------------------------------------\n    creating redis server: redis6479.service [increment value: 0]\n    redis TCP port: 6479\n    create systemd redis6479.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6479.service\n    create /etc/redis6479/redis6479.conf config file\n    mkdir -p /etc/redis6479\n    cp -a /etc/redis/redis.conf /etc/redis6479/redis6479.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6479/redis6479.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6479.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6479.service to /usr/lib/systemd/system/redis6479.service.\n    ## Redis TCP 6479 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:12724\n    tcp_port:6479\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6479/redis-server\n    config_file:/etc/redis6479/redis6479.conf\n    # Replication\n    role:master\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n    -------------------------------------------------------\n    creating redis server: redis6480.service [increment value: 1]\n    redis TCP port: 6480\n    create systemd redis6480.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6480.service\n    create /etc/redis6480/redis6480.conf config file\n    mkdir -p /etc/redis6480\n    cp -a /etc/redis/redis.conf /etc/redis6480/redis6480.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6480/redis6480.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6480.service\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6480.service to /usr/lib/systemd/system/redis6480.service.\n    ## Redis TCP 6480 Info ##\n    redis_version:3.2.8\n    redis_mode:standalone\n    process_id:12794\n    tcp_port:6480\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6480/redis-server\n    config_file:/etc/redis6480/redis6480.conf\n    # Replication\n    role:slave\n    master_host:127.0.0.1\n    master_port:6479\n    master_link_status:up\n    master_last_io_seconds_ago:2\n    master_sync_in_progress:0\n    slave_repl_offset:1\n    slave_priority:100\n    slave_read_only:1\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n\nLatest version of `redis-generator.sh` also supports specifying the custom `STARTPORT` for redis replication commands. So to create 2x redis master + slave replication starting on TCP port `6579` instead of default `6479`:\n\n    ./redis-generator.sh replication 2 6579\n\nIf TCP port 6579 already in use, you'll get an error\n\n    ./redis-generator.sh replication 2 6579\n    \n    Error: TCP port 6579 in use, try another port\n\nOptionally, you can enable auto [redis sentinel](https://redis.io/topics/sentinel) setup which is tied to the redis master instance on `STARTPORT` by enabling `SENTINEL_SETUP='y'` prior to running replication command.\n\n* [Create Redis Replication + Sentinel monitor config - 1x master + 1x slave](https://github.com/centminmod/centminmod-redis/blob/master/examples/redis-replication-2-sentinels.md)\n\n9 Redis server cluster\n=========\n\n9x Redis server cluster mode with `cluster` flag appended for TCP ports 6479-6487 with manual run of `redis-cluster-tool` to join cluster. Or for specific redis 9 node cluster setup with auto run of `redis-cluster-tool` example, check this [example](examples/redis-cluster-9.md).\n\n\n    ./redis-generator.sh clusterprep 9\n    \n    Creating redis servers starting at TCP = 6479...\n    -------------------------------------------------------\n    creating redis server: redis6479.service [increment value: 0]\n    redis TCP port: 6479\n    create systemd redis6479.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6479.service\n    create /etc/redis6479/redis6479.conf config file\n    mkdir -p /etc/redis6479\n    cp -a /etc/redis/redis.conf /etc/redis6479/redis6479.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6479/redis6479.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6479.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6479.service to /usr/lib/systemd/system/redis6479.service.\n    ## Redis TCP 6479 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:12972\n    tcp_port:6479\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6479/redis-server\n    config_file:/etc/redis6479/redis6479.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6480.service [increment value: 1]\n    redis TCP port: 6480\n    create systemd redis6480.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6480.service\n    create /etc/redis6480/redis6480.conf config file\n    mkdir -p /etc/redis6480\n    cp -a /etc/redis/redis.conf /etc/redis6480/redis6480.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6480/redis6480.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6480.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6480.service to /usr/lib/systemd/system/redis6480.service.\n    ## Redis TCP 6480 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13047\n    tcp_port:6480\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6480/redis-server\n    config_file:/etc/redis6480/redis6480.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6481.service [increment value: 2]\n    redis TCP port: 6481\n    create systemd redis6481.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6481.service\n    create /etc/redis6481/redis6481.conf config file\n    mkdir -p /etc/redis6481\n    cp -a /etc/redis/redis.conf /etc/redis6481/redis6481.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6481/redis6481.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6481.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6481.service to /usr/lib/systemd/system/redis6481.service.\n    ## Redis TCP 6481 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13122\n    tcp_port:6481\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6481/redis-server\n    config_file:/etc/redis6481/redis6481.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6482.service [increment value: 3]\n    redis TCP port: 6482\n    create systemd redis6482.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6482.service\n    create /etc/redis6482/redis6482.conf config file\n    mkdir -p /etc/redis6482\n    cp -a /etc/redis/redis.conf /etc/redis6482/redis6482.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6482/redis6482.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6482.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6482.service to /usr/lib/systemd/system/redis6482.service.\n    ## Redis TCP 6482 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13197\n    tcp_port:6482\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6482/redis-server\n    config_file:/etc/redis6482/redis6482.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6483.service [increment value: 4]\n    redis TCP port: 6483\n    create systemd redis6483.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6483.service\n    create /etc/redis6483/redis6483.conf config file\n    mkdir -p /etc/redis6483\n    cp -a /etc/redis/redis.conf /etc/redis6483/redis6483.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6483/redis6483.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6483.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6483.service to /usr/lib/systemd/system/redis6483.service.\n    ## Redis TCP 6483 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13272\n    tcp_port:6483\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6483/redis-server\n    config_file:/etc/redis6483/redis6483.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6484.service [increment value: 5]\n    redis TCP port: 6484\n    create systemd redis6484.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6484.service\n    create /etc/redis6484/redis6484.conf config file\n    mkdir -p /etc/redis6484\n    cp -a /etc/redis/redis.conf /etc/redis6484/redis6484.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6484/redis6484.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6484.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6484.service to /usr/lib/systemd/system/redis6484.service.\n    ## Redis TCP 6484 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13347\n    tcp_port:6484\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6484/redis-server\n    config_file:/etc/redis6484/redis6484.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6485.service [increment value: 6]\n    redis TCP port: 6485\n    create systemd redis6485.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6485.service\n    create /etc/redis6485/redis6485.conf config file\n    mkdir -p /etc/redis6485\n    cp -a /etc/redis/redis.conf /etc/redis6485/redis6485.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6485/redis6485.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6485.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6485.service to /usr/lib/systemd/system/redis6485.service.\n    ## Redis TCP 6485 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13422\n    tcp_port:6485\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6485/redis-server\n    config_file:/etc/redis6485/redis6485.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6486.service [increment value: 7]\n    redis TCP port: 6486\n    create systemd redis6486.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6486.service\n    create /etc/redis6486/redis6486.conf config file\n    mkdir -p /etc/redis6486\n    cp -a /etc/redis/redis.conf /etc/redis6486/redis6486.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6486/redis6486.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6486.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6486.service to /usr/lib/systemd/system/redis6486.service.\n    ## Redis TCP 6486 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13497\n    tcp_port:6486\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6486/redis-server\n    config_file:/etc/redis6486/redis6486.conf\n    # Cluster\n    cluster_enabled:1\n    -------------------------------------------------------\n    creating redis server: redis6487.service [increment value: 8]\n    redis TCP port: 6487\n    create systemd redis6487.service\n    cp -a /usr/lib/systemd/system/redis.service /usr/lib/systemd/system/redis6487.service\n    create /etc/redis6487/redis6487.conf config file\n    mkdir -p /etc/redis6487\n    cp -a /etc/redis/redis.conf /etc/redis6487/redis6487.conf\n    -rw-r----- 1 redis root 46K Feb 13 08:07 /etc/redis6487/redis6487.conf\n    -rw-r--r-- 1 root  root 249 Sep 14 08:43 /usr/lib/systemd/system/redis6487.service\n    enabled cluster mode with cluster-config-file nodes-150317-175739.conf\n    Created symlink from /etc/systemd/system/multi-user.target.wants/redis6487.service to /usr/lib/systemd/system/redis6487.service.\n    ## Redis TCP 6487 Info ##\n    redis_version:3.2.8\n    redis_mode:cluster\n    process_id:13572\n    tcp_port:6487\n    uptime_in_seconds:0\n    uptime_in_days:0\n    executable:/etc/redis6487/redis-server\n    config_file:/etc/redis6487/redis6487.conf\n    # Cluster\n    cluster_enabled:1\n\nUsing [redis-cluster-tool](https://github.com/deep011/redis-cluster-tool) to then create redis cluster from the 9x redis servers created\n\n    redis-cluster-tool -C \"cluster_create 127.0.0.1:6479[127.0.0.1:6480|127.0.0.1:6481] 127.0.0.1:6482[127.0.0.1:6483|127.0.0.1:6484] 127.0.0.1:6485[127.0.0.1:6486|127.0.0.1:6487]\"\n\noutput\n\n    redis-cluster-tool -C \"cluster_create 127.0.0.1:6479[127.0.0.1:6480|127.0.0.1:6481] 127.0.0.1:6482[127.0.0.1:6483|127.0.0.1:6484] 127.0.0.1:6485[127.0.0.1:6486|127.0.0.1:6487]\"\n    Waiting for the nodes to join...\n    All nodes joined!\n    Cluster created success!\n\nGet cluster state\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C cluster_state -r master\n    master[127.0.0.1:6479] cluster_state: ok\n    master[127.0.0.1:6482] cluster_state: ok\n    master[127.0.0.1:6485] cluster_state: ok\n    \n    All nodes \"cluster_state\" are SAME: ok\n\nGet cluster used memory\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C cluster_used_memory -r master     \n    master[127.0.0.1:6479] used_memory: 2457304 (2 MB 33.33%)\n    master[127.0.0.1:6482] used_memory: 2457304 (2 MB 33.33%)\n    master[127.0.0.1:6485] used_memory: 2457304 (2 MB 33.33%)\n    \n    Cluster total \"used_memory\" : 7371912 (7 MB)\n\nFlush cluster\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C flushall -s\n    Do you really want to execute the \"flushall\"?\n    please input \"yes\" or \"no\" :\n    yes\n    \n    All nodes \"flushall\" are OK\n\nGet config value from every node in cluster\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C \"cluster_config_get maxmemory\" -r master\n    master[127.0.0.1:6479] maxmemory: 116391936 (111 MB)\n    master[127.0.0.1:6482] maxmemory: 116391936 (111 MB)\n    master[127.0.0.1:6485] maxmemory: 116391936 (111 MB)\n    \n    All nodes \"maxmemory\" are SAME: 116391936 (111 MB)\n    Cluster total maxmemory: 349175808 (333 MB)\n\nSet config value on every node in cluster\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C \"cluster_config_set maxmemory 10000000\" -s\n    Do you really want to execute the \"cluster_config_set\"?\n    please input \"yes\" or \"no\" :\n    yes\n    \n    All nodes \"config\" are OK\n\nRecheck new value\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C \"cluster_config_get maxmemory\" -r master\n    master[127.0.0.1:6479] maxmemory: 10000000 (9 MB)\n    master[127.0.0.1:6482] maxmemory: 10000000 (9 MB)\n    master[127.0.0.1:6485] maxmemory: 10000000 (9 MB)\n    \n    All nodes \"maxmemory\" are SAME: 10000000 (9 MB)\n    Cluster total maxmemory: 30000000 (28 MB)\n\nDelete keys in cluster\n\n    redis-cluster-tool -a 127.0.0.1:6479 -C \"del_keys 1*\"\n    Do you really want to execute the \"del_keys\"?\n    please input \"yes\" or \"no\" :\n    yes\n    delete keys job is running...\n    delete keys job finished, deleted: 999999 keys, used: 4 s\n\nEnd result is 9x redis server cluster consisting of 3x sets of Redis master + 2 slaves.\n\nExample of redis port 6479 master with port 6480 and 6481 redis slaves\n\n    redis-cli -h 127.0.0.1 -p 6479 INFO REPLICATION\n    # Replication\n    role:master\n    connected_slaves:2\n    slave0:ip=127.0.0.1,port=6480,state=online,offset=1274,lag=0\n    slave1:ip=127.0.0.1,port=6481,state=online,offset=1274,lag=0\n    master_repl_offset:1274\n    repl_backlog_active:1\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:2\n    repl_backlog_histlen:1273\n    \n    redis-cli -h 127.0.0.1 -p 6480 INFO REPLICATION  \n    # Replication\n    role:slave\n    master_host:127.0.0.1\n    master_port:6479\n    master_link_status:up\n    master_last_io_seconds_ago:2\n    master_sync_in_progress:0\n    slave_repl_offset:1358\n    slave_priority:100\n    slave_read_only:1\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n    \n    redis-cli -h 127.0.0.1 -p 6481 INFO REPLICATION \n    # Replication\n    role:slave\n    master_host:127.0.0.1\n    master_port:6479\n    master_link_status:up\n    master_last_io_seconds_ago:8\n    master_sync_in_progress:0\n    slave_repl_offset:1358\n    slave_priority:100\n    slave_read_only:1\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n\nExample of redis port 6482 master with port 6483 and 6484 redis slaves\n\n    redis-cli -h 127.0.0.1 -p 6482 INFO REPLICATION \n    # Replication\n    role:master\n    connected_slaves:2\n    slave0:ip=127.0.0.1,port=6483,state=online,offset=1498,lag=0\n    slave1:ip=127.0.0.1,port=6484,state=online,offset=1498,lag=0\n    master_repl_offset:1498\n    repl_backlog_active:1\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:2\n    repl_backlog_histlen:1497\n    \n    redis-cli -h 127.0.0.1 -p 6483 INFO REPLICATION \n    # Replication\n    role:slave\n    master_host:127.0.0.1\n    master_port:6482\n    master_link_status:up\n    master_last_io_seconds_ago:8\n    master_sync_in_progress:0\n    slave_repl_offset:1498\n    slave_priority:100\n    slave_read_only:1\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n    \n    redis-cli -h 127.0.0.1 -p 6484 INFO REPLICATION \n    # Replication\n    role:slave\n    master_host:127.0.0.1\n    master_port:6482\n    master_link_status:up\n    master_last_io_seconds_ago:1\n    master_sync_in_progress:0\n    slave_repl_offset:1512\n    slave_priority:100\n    slave_read_only:1\n    connected_slaves:0\n    master_repl_offset:0\n    repl_backlog_active:0\n    repl_backlog_size:1048576\n    repl_backlog_first_byte_offset:0\n    repl_backlog_histlen:0\n\nCluster node info\n\n    redis-cli -h 127.0.0.1 -p 6479 -c cluster nodes | sort -k2\n    3d96c3b1a9413ddbe86b76fe647d978c59667fd9 127.0.0.1:6479 myself,master - 0 0 1 connected 0-5461\n    f85f542abf5428a7733a8a61aa2f3d3e3753245a 127.0.0.1:6480 slave 3d96c3b1a9413ddbe86b76fe647d978c59667fd9 0 1489600758505 1 connected\n    49f574a996f0cf54c7925b87c87aa6d9b8bcde1c 127.0.0.1:6481 slave 3d96c3b1a9413ddbe86b76fe647d978c59667fd9 0 1489600758505 5 connected\n    a902dd4f58687378950cd7dcb054c4813cca1f69 127.0.0.1:6482 master - 0 1489600757500 6 connected 5462-10922\n    1b9b164150e679c71abdad31d2e0c3529290f5b8 127.0.0.1:6483 slave a902dd4f58687378950cd7dcb054c4813cca1f69 0 1489600759009 7 connected\n    d24ebd19b8c509401c6b14e126d88ac208235c12 127.0.0.1:6484 slave a902dd4f58687378950cd7dcb054c4813cca1f69 0 1489600759009 6 connected\n    1e9a870450fb67fe96e78e5c1e28fe7a0ffcfbae 127.0.0.1:6485 master - 0 1489600757500 8 connected 10923-16383\n    a0ff921249b308dabea33eba5449ebdea0acafed 127.0.0.1:6486 slave 1e9a870450fb67fe96e78e5c1e28fe7a0ffcfbae 0 1489600756994 8 connected\n    4070795b598a586827d170b341dbd685b19e0ed0 127.0.0.1:6487 slave 1e9a870450fb67fe96e78e5c1e28fe7a0ffcfbae 0 1489600758505 8 connected\n\nTest the redis cluster\n\n    redis-cli -h 127.0.0.1 -p 6479 -c set foo bar\n    OK\n    \n    redis-cli -h 127.0.0.1 -p 6479 -c get foo\n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6480 -c get foo  \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6481 -c get foo \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6482 -c get foo  \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6483 -c get foo \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6484 -c get foo \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6485 -c get foo \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6486 -c get foo \n    \"bar\"\n    \n    redis-cli -h 127.0.0.1 -p 6487 -c get foo \n    \"bar\"\n\n# redis-keys.sh\n\n`redis-keys.sh` script allows you to list all redis cache keys for a specific redis dataabase name or for all redis databases as well as purge a specific redis database. Below is an example from Centmin Mod's centmin.sh menu option 22 Wordpress auto installer's Redis Nginx level full HTML page caching setup querying the cached full HTML Wordpress pages and listing their redis cache expiry TTL values in seconds and when you purge the redis database number = 0.\n\n```\n./redis-keys.sh\n\nUsage:\n\n./redis-keys.sh get {redis_db_number}\n./redis-keys.sh purge {redis_db_number}\n```\n\n```\n./redis-keys.sh get 0\n---\nredis key: nginx-cache:httpsGETyourdomain.com/\nredis expiry ttl: (integer) 3588\n---\nredis key: nginx-cache:httpsGETyourdomain.com/1/hello-world/\nredis expiry ttl: (integer) 3598\n---\nredis key: nginx-cache:httpsGETyourdomain.com/category/news/\nredis expiry ttl: (integer) 3593\n---\nredis key: nginx-cache:httpsGETyourdomain.com/5/first-post/\nredis expiry ttl: (integer) 3589\n```\n\n```\n./redis-keys.sh purge 0\nPurging redis database 0: OK\n\n./redis-keys.sh get 0\n---\nredis key: \nredis expiry ttl: (integer) -2\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcentminmod%2Fcentminmod-redis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcentminmod%2Fcentminmod-redis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcentminmod%2Fcentminmod-redis/lists"}