Redis

Thank you for reading this post, don't forget to subscribe!

Redis - сете­вое жур­на­ли­ру­е­мое хра­ни­ли­ще дан­ных типа key-value, дан­ные хра­нят­ся в опер­тив­ной памя­ти, пере­о­ди­че­ски запи­сы­ва­ют­ся на диск.
Redis широ­ко исполь­зу­ет­ся для хра­не­ния дан­ных в попу­ляр­ных фрейм­вор­ках, а так­же име­ет­ся под­держ­ка с помо­щью пла­ги­нов CMS WordPress, в кото­рой Redis высту­па­ет систе­мой для хра­не­ния кеша.

Спо­соб 1

Для уста­нов­ки нуж­но под­клю­чить репо­зи­то­рий EPEL, после чего
yum install redis -y

Спо­соб 2
Что­бы поста­вить послед­нюю вер­сию из исход­ни­ков выпол­ним следующее:
yum install make gcc* wget tcl -y
выка­чи­ва­ем послед­нюю и ста­биль­ную вер­сию редиса:

cd /usr/local/src && wget http://download.redis.io/releases/redis-stable.tar.gz

Рас­па­ко­вы­ва­ем ска­чан­ный архив:

tar xzf redis-stable.tar.gz

Пере­хо­дим в пап­ку и соби­ра­ем сборку:

cd redis-stable && make

запу­сти­те «make test», что­бы про­ве­рить, все ли в порядке

make install

Redis уста­нов­лен. Что­бы настро­ить redis для запус­ка в фоно­вом режи­ме, запу­сти­те скрипт:

bash /usr/local/src/redis-stable/utils/install_server.sh

Welcome to the redis service installer
This script will help you easily set up a running redis serverPlease select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service…
Success!
/var/run/redis_6379.pid exists, process is already running or crashed
Installation successful!

 

Вам будет пред­ло­же­но вве­сти раз­лич­ные зна­че­ния для созда­ния кон­фи­гу­ра­ции, но вы може­те про­сто нажать кла­ви­шу «enter», что­бы при­нять зна­че­ния по умолчанию.

Про­ве­рим вер­сию редиски:

redis-server --version

Запу­стить сер­вис, можно:

service redis_6379 start

Пере­за­пу­стить сер­вис, можно:

service redis_6379 restart

Для исполь­зо­ва­ния реди­са, запустите:

redis-cli

Что­бы доба­вить служ­бу в авто­за­груз­ку, используем:

chkconfig --add redis_6379

Меня в такой кон­фи­гу­ра­ции, раз­дра­жа­ет то, что он назы­ва­ет­ся redis-server. Для меня логич­но было бы исполь­зо­вать «redis_6379» из-за того, что на сер­ве­ре могут иметь­ся еще экзем­пля­ры с реди­сом. По это­му, если нуж­но изме­нить это, то приступим…

Нас инте­ре­су­ет 2 файла:

/usr/local/bin/redis-server
/usr/local/bin/redis-cli

Берем и пере­име­но­вы­ва­ем их:

mv /usr/local/bin/redis-server /usr/local/bin/redis_6379

mv /usr/local/bin/redis-cli /usr/local/bin/redis_6379-cli

 

После это­го, сто­ит поме­нять путь к дан­ным фай­лам, для это­го открываем:

vim /etc/init.d/redis_6379

Нахо­дим:

EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

Меня­ем, на:

EXEC=/usr/local/bin/redis_6379
CLIEXEC=/usr/local/bin/redis_6379-cli

И пере­за­пус­ка­ем редиску:

service redis_6379 restart

/etc/init.d/redis_6379 restart

 

 

Настройка Redis в Unix/Linux

vim /etc/redis/6379.conf

У меня он выгля­дит сле­ду­ю­щим образом:

bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis_6379.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis/6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
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
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
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

 

И так, у меня редис висит на локал­хо­сте ( 127.0.0.1 ), вот строка:

bind 127.0.0.1

Вооб­ще, мож­но изме­нить дан­ную стро­ку на «0.0.0.0» или на кон­крет­ный IP адрес.

Стро­ка:

protected-mode yes

Гово­рит что вклю­чен мод-защи­ты. Это озна­ча­ет, что никто из вне, не смо­жет под­клю­чит­ся к дан­но­му редис-сер­ве­ру. Если хоти­те что­бы кли­ен­ты с дру­гих хостов под­клю­ча­лись к Redis, то уста­но­вить в «no».

Сер­вер исполь­зу­ет 6379-й порт. Мож­но пове­сить на сокет при необходимости.

Это стан­дарт­ная кон­фи­гу­ра­ция и она не иде­аль­ная, т.к она может «сожрать» всю RAM. Для того что­бы это­го не про­изо­шло, сто­ит добавить:

maxmemory 2147483648

И так, я для реди­са, огра­ни­чил исполь­зо­ва­ния вир­ту­аль­ной памя­ти до 2 Гб. Так же, мож­но защи­тить редис­ку-сер­вис и уста­но­вить пароль, для это­го — нахо­дим строку:

#requirepass foobared

И при­во­дим к виду:

requirepass Your_PASSWORD_here

Ино­гда, быва­ет полез­ным — запре­тить исполь­зо­ва­ние команд, находим:

#rename-command CONFIG ""

И про­пи­сы­ва­ем:

rename-command CONFIG ""

Это запре­тит исполь­зо­ва­ния CONFIG коман­ды в редис. Но мож­но и пере­име­но­вать неко­то­рую коман­ду, например:

rename-command CONFIG rename_CONFIG

Дан­ное выра­же­ние, заме­нит исполь­зо­ва­ние CONFIG на rename_CONFIG.

Что­бы про­ве­рить бенч­марк (нагруз­ку на редис-сер­вер), исполь­зуй­те команду:

redis-benchmark

 

 

________________________________________________________________________

1.Увеличиваем коли­че­ство вхо­дя­щих соединений

Прро­ве­ря­ем теку­щее значение

Выста­вим somaxconn больше,чем tcp-backlog

Для авто­за­груз­ки используем