1 קלח - CentOS 8 -ב (תבשומ לוכשא בצמ רשאכ) Redis לש שדחמ לופכש רידגהל דציכ


Redis (קוחרמ ןולימ תרש) בחרנ שומישב אצמנו דואמ ירלופופ םינותנ חתפמ/םינותנ תרש/םינותנ סיסב תרש אוה.

.רתוי הברה ךכ לכו תמא ןמזב םינותנ חותינ ,םיקחשמ ,תועדוהו טא'צ ימושיי ,טנרטניא ימושייב םישי ;רות וא תועדוה ךוותמ ,ןומטמ תבכש ,עדימ רגאמכ :שומיש ירקמ לש בחר ןווגמל ליעיל ותוא תוכפוהש תונוכת

.םירחא םיבר דועו תואקסע ,Lua לש םיטפירקס ,Redis Sentinel ךרד ההובג תונימזב הסירפל םייטמוטוא םילשכ םג ללוכ אוה .הציחמ ו תולוכשא ,יטקפמוק טמרופב קסידל ןורכיזב םינותנ תביתכל הדמתה תורוצ יתש ,

.ינוציח רוקממ וא קסידהמ םתוא אורקל וא םינותנה לכ תא בותכל םיכירצ םייתרוסמ עדימ ירגאמש דועב ,םושייל תולקב םישיגנל םתוא םיכפוהו ןורכיזב םינסחואמ וא םיאצמנ הלש םינותנה לכש ןוויכמ ,(' וכו MySQ

.םימושייה יעוציב תא רבד לש ופוסב רפשמש RDMS (Relational Database Management Systems) לש רדהנ גוז ןב והז ןכל .םיצופנ םינותנל םינותנ דסמ לע תותליאש עצבל דימת אלו (היצקילפאה לש ישארה ןורכיזה

.Redis Cluster -ו Redis Sentinel תועצמאב ההובג תונימז ,לופכש םהש סידר לש חתפמה תונוכתמ המכב שמתשהלו רידגהל דציכ רוקסנ ,Redis לש וז תיקלח-תלת הכרדה תרדסב

.לופכשה תא קודבלו ,םיקתעהו רטסאמה תא רידגהל ,Redis תא ןיקתהל דציכ ללוכ ,CentOS 8 Linux -ב (תבשומ לוכשא בצמ םע) Redis לופכש תא ןיקתהל דציכ הארמ הז ךירדמ

.(םיינש וא םידבע שי םהמ דחא לכלש (םינודא שולש לשמל) רתוי וא תמוצ תוצובק יתשמ בכרומ יושע לעפומ לוכשא בצמ םע סידר לוכשא רשאכ ,(םיינש וא דחא לפכשמו רטסאמ לשמל) תחא תמוצ תצובק שי ,תבשומ לוכשא

    Redis Master Server: 10.42.0.247
    Redis Replica1/Slave1: 10.42.0.21
    Redis Replica2/Slave2: 10.42.0.34
    

    .וקחמיי דבעה לע רבעב םימייק ויהש םינותנה לכו אלמה םינותנה דסמ לש ינושאר קתוע לבקמ אוה ,רטסאמל רבחתמ דבעש עגרב .תמוצ לכב לוכשאה ינותנ לכ תא הליכמה תחא תמוצ תצובק ונל שי ,(דבלב האירקל קתעה ת

    .תמא ןמזב םידבעה לש םינותנה יכרעמ ןוכדע ךרוצל םירבוחמה םידבעה לכל וטשפתה םה ,רטסאמה לע תועצבתמ םיבתוכש ומכו .לוכשאב תמוצ לכמ אורקל ךא להנמל קר בותכל לוכי חוקל ,הזמ ץוח

    CentOS 8 -ב Redis תנקתה :1 בלש

    .גצומכ DNF תוליבחה להנמ תועצמאב (תוקילפרו רטסאמ) םיתמצה לכ לע Redis תליבח תא ןקתה זאו ,SSH תועצמאב CentOS 8 יתמצ לכל סנכיה ,תישאר .1

    # dnf install @redis
    

    .אבה ןפואב לעופ אוה םא קודבו תכרעמה לוחתא לכב תיטמוטוא הלעפהל ותוא לעפה ,Redis תוריש תא לעפה ,Redis לש הליבחה תנקתה תמלשה םע .2

    # systemctl start redis
    # systemctl enable redis
    # systemctl status redis
    

    .ןמקלדכ ,ss הדוקפה תועצמאב הנזאה תואיצי תקידב ידי לע לעופ Redis תרשש רשאל םג ךתורשפאב .3

    # ss -ltpn | grep redis-server
    

    Redis לש ישארה תרש לש הרוצת תעיבק :2 בלש

    4. Redis הרוצתה ץבוק תועצמאב תרדגומ /etc/redis.conf, תרחבש הדוקפה תרוש ךרוע תועצמאב הכירעל ותוא חתפ זאו ירוקמה ץבוקה לש יוביג רוצ ,תישאר .ומצעב דעותש אמגודל הרוצת ץבוק.

    # cp /etc/redis.conf /etc/redis.conf.org
    # vi /etc/redis.conf
    

    .10.42.0.247 רמולכ הלש LAN -ה לש IP -ה תבותכבו IPv4 loopback -ה תבותכב הנזאהל רטסאמה תא רידגהל ךירצ ,םיקתעה םע רשקתל ידכ .bind תארוה תועצמאב ,loopback קשממב םירוביח לבקלו בישקהל רדגומ Redi

    bind 127.0.0.1 10.42.0.247
    

    .גצומש יפכ םיקתעה םע תרושקת רשפאל ידכ no -ל ןגומ בצמב רטמרפה תא רדגה ,ןכמ רחאל .6

    protected-mode no
    

    .CLI תוחוקל וא םימושיי לש API יקשממ םע תרושקתל םינותנה תאיצי והז . port תייחנה תועצמאב תרדגומה 6379 האיציל ןיזאמ Redis ,ןכ ומכ

    port 6379
    

    .(תחטבואמ המסיס רידגהל ורכז) קתעה/חוקל תשקב ברסי רטסאמה תרחא ,לופכש ןורכנס ךילהת תלחתה וא ןהשלכ תודוקפ תלעפה ינפל תומיא תמסיס איצוהל םיכירצ םיקתעה/תוחוקלהש ךכ ,passepass -ה תייחנה תועצ

    .תדבוע איה דציכ תוארהל ידכ ,המגדה יכרוצל האבה תורשפאב שמתשנ

    requirepass  [email 
    

    .loglevel רטמרפה תועצמאב תרדגומה ,בל םיש איה לדחמ תרירבכ תרדגומה טוריפה תמרו םושירה ןמוי תארוה יפ לע רדגומ הז ,var/log/redis/redis.log/ ץבוקב םינסחואמ Redis ינמוי ,ןכ ומכ .8

    loglevel  notice
    logfile  /var/log/redis/redis.log
    

    .systemd -ל חקופמה רטמרפה תרדגה ידי לע תכרעמה לע חוקיפה ץע םע היצקארטניאל Redis תא רידגהל ךתורשפאב ,CentOS 8 -ב לדחמ תרירבכ רדגומה םיתורישהו תכרעמה להנמ אוה systemd -ש ןוויכמ .9

    supervised systemd
    

    .םישדחה םייונישה תא ליחהל ידכ Redis תוריש תא שדחמ לעפה זאו .ותוא רגסו ץבוקה תא רומש ,תושורדה תורוצתה לכ עוציב רחאל .10

    # systemctl daemon-reload
    # systemctl restart redis
    

    .לשכיהל הרומא תומיאה ינפל הדוקפ תלעפה ,המסיס תועצמאב תוחוקלמ חטבואמ תרשהש ןוויכמ יכ בל םיש .(6379 127.0.0.1 האיציב) localhost -ב תרשל רבחתמ אוה ,לדחמ תרירבכ .(redis -ה תרשל הדוקפ תרוש קשממ

    .אבה ךסמה םוליצב גצומש יפכ תומיאה תמסיס תא קפסל ידכ auth הדוקפב שמתשה

    # redis-cli
    127.0.0.1:6379> client list
    127.0.0.1:6379> AUTH [email 
    127.0.0.1:6379> client list
    

    .(קתעהה לש שאה תמוחב החותפ תויהל תבייח 6379 האיצי יכ אל) המאתהב האיצי קתעה לש חראמה םש/IP -ה תבותכ תא ןייצל ידכ -p -h תויורשפאב שמתשה ,(אבה ףיעסב ראותמכ

    # redis-cli -h 10.42.0.21 -p 6379
    

    .גצומכ cmd שאה תמוח לש הדוקפה תועצמאב שאה תמוח יללכ תא שדחמ ןעט ןכמ רחאלו ,ישארה להנמל םיסנכנ םירוביח רשפאל ידכ שאה תמוחב Redis תרש לש םינותנה תאיצי תא חתפ ,ןכמ רחאל .13

    # firewall-cmd --zone=public --permanent --add-port=6379/tcp 
    # firewall-cmd --reload
    

    סידר לש םידבע/םיקתעה יתרש לש הרוצת תעיבק :3 בלש

    .גצומש יפכ REPLICAOF תדוקפל ארקו redis-cli תורישה ילכב שמתשה ,תמא ןמזב קתעהכ Redis לש עפומ תוריהמב רידגהל ידכ .14

    # redis-cli replicaof 10.42.0.247 6379
    OR
    # redis-cli
    127.0.0.1:6379> REPLICAOF 10.42.0.247 6379
    

    .הכירעל ותוא חתפ זאו ירוקמה ץבוקה יוביגב לחתה .הרוצתה ץבוקב םיאבה םייונישה תא עצבל ךילע ,עובקל לופכש רוביח ךופהל ידכ .15

    # cp /etc/redis.conf /etc/redis.conf.org
    # vi /etc/redis.conf
    

    .הכירכה תייחנהל קתעהה לש IP -ה תבותכ תא ףסוה ,םינותנ אורקל ידכ לפכשל רבחתהל תוחוקלל רשפאל ידכ .16

    # replica1
    bind 127.0.0.1 10.42.0.21
    
    # replica2
    bind 127.0.0.1 10.42.0.34
    

    .םיכרעכ האיציה תאו ישארה תמוצה לש (חראמה םש וא) IP -ה תבותכ תא רדגהו replicaof רטמרפב שמתשה ,קתעהכ סידר לש הרוצת רידגהל ידכ .17

    replicaof 10.42.0.247 6379
    

    .masterauth רטמרפה תועצמאב ,רטסאמל תומיאל התוא רשפאל ידכ קתעה תרוצתב המסיסה תא רידגהל ונילע ,המסיס תועצמאב ןגומ ונלש רטסאמה עפומש ןוויכמ ,ןכמ רחאל .18

    masterauth [email 
    

    .replica-serve-stale-data רטמרפה ידי לע תטלשנ וז תוגהנתה .קיר תויהל לוכי םינותנה ךרעמ זא ,ןושארה ןורכניסה הז םא ךא ."םינכדועמ אל"\ינותנ םע ילוא ,חוקלה תושקבל תונעל רדגומ קתעהה ,ומוציעב א

    .ךלש םושייה יכרצל םאתהב תורחא תולפכושמ הרוצת תומאתה עצבל ךתורשפאב .דבלב האירקל רטמרפה ידי לע טלשנ הז ,דבלב האירקל םיקתעה אוה לדחמ תרירבכ Redis 2.6 -ש ןוויכמו

    .םילפכושמה םיקתועה לכב Redis תוריש תא שדחמ לעפה ,םישורדה םייונישה לכ תא תעציבש רחאל .20

    # systemctl restart redis
    

    .שאה תמוח יללכ תא שדחמ ןעטו םילפכושמה םיקתועל תוחוקלהמו רטסאמהמ םירוביח רשפאל ידכ שאה תמוחב 6379 תאיצי תא חתפ ,ןכ ומכ .21

    # firewall-cmd --zone=public --permanenent --add-port=6379/tcp
    # firewall-cmd --reload
    

    קתעה-רטסאמה לופכש בצמ תא קודב :4 בלש

    .ןמקלדכ רדסב תדבוע הרדגהה םא קודבל םילוכי ונא ,המלשוה קתעה-רטסאמה לופכש תרוצתש רחאל .22

    .תואבה תודוקפה תא לעפה ,רטסאמה לע

    # redis-cli
    127.0.0.1:6379> AUTH [email 
    127.0.0.1:6379> info replication
    

    .אבה ןפואב םידבעה/םיקתעה לע לופכשה בצמ תא קודב ,ןכ ומכ .23

    # redis-cli
    127.0.0.1:6379> info replication
    

    .םיקתעה םע םינרכנוסמ םינותנה םא קודבנו ישארה עפומב חתפמ ךרע תרדגה ידי לע לופכשה תא קודבנ ואוב וישכע .23

    :תאז השע ,רטסאמה לע

    # redis-cli
    127.0.0.1:6379> AUTH [email 
    127.0.0.1:6379> set domain 'linux-console.net'
    

    .גצומש יפכ םיקתעה םע ונרכנוס םינותנה םא קודב זאו .24

    # redis-cli
    127.0.0.1:6379> get domain
    

    .רדגומ תוינש רפסמל ,םינימז םיקתעה קיפסמ ויהי אלו הדימב תובותכ ןדבואל ןוכיסה תא ליבגהל ישאר עפומל תרשפאמה הנוכת שי Redis -ל .25

    .המאתהב min-replicas-max-lag -ו min-replicas to-write תויורשפאה ידי לע טלשנש יפכ ,תוינש M -מ הווש וא ןטק רוגיפ םע ,םירבוחמ םיקתעה N -מ תוחפ שי םא הביתכ לבקל קיספהל לוכי רטסאמש איה תועמשמה

    .הביתכ לבקל קיספי רטסאמה ,םינווקמ םיקתוע ינשמ תוחפ שי םא ,תוינש 10 רחאל ,םיקתעהל דעו ןורחאה גניפהמ ,איה וז הרוצת לש תועמשמה .אבה ךסמה םוליצב גצומש יפכ ,etc/redis.conf/ -ב ךלש הנקתהה תושירד

    min-replicas-to-write 2
    min-replicas-max-lag 10
    

    .Redis דועיתב לופכש לע םיפסונ םיטרפ תלבקלו etc/redis.conf/ הרוצתה ץבוק ראשב תופסונ תויורשפא אוצמל לכות

    .ונילא עיגהל ךליבשב אוה הטמל ונלש הבוגתה ספוט תועצמאב ךלש תולאשה תאו ifrs תא ףתשל רוכזו לוענ ראשיה ,זא דע .CentOS 8 -ב Sentinel םע ההובג תונימזל Redis תא רידגהל דציכ רוקסנ ,אבה רמאמב