{"id":337,"date":"2012-12-16T21:02:30","date_gmt":"2012-12-16T13:02:30","guid":{"rendered":"http:\/\/www.royalwzy.com\/?p=337"},"modified":"2014-04-11T14:16:42","modified_gmt":"2014-04-11T06:16:42","slug":"redis%e5%ad%a6%e4%b9%a006-%e5%8f%91%e5%b8%83%e5%8f%8a%e8%ae%a2%e9%98%85","status":"publish","type":"post","link":"http:\/\/www.royalwzy.com\/?p=337","title":{"rendered":"Redis\u5b66\u4e6006&#8211;\u53d1\u5e03\u53ca\u8ba2\u9605"},"content":{"rendered":"<div>Redis\u7684\u53d1\u5e03\u53ca\u8ba2\u9605<\/p>\n<div>\n<ol>\n<li>\u53d1\u5e03\u8ba2\u9605(pub\/sub)\u662f\u4e00\u79cd\u6d88\u606f\u901a\u4fe1\u6a21\u5f0f,\u4e3b\u8981\u7684\u76ee\u7684\u662f\u89e3\u51b3\u6d88\u606f\u53d1\u5e03\u8005\u548c\u6d88\u606f\u8ba2\u9605\u8005\u4e4b\u95f4\u7684\u8026\u5408,\u8fd9\u70b9\u548c\u8bbe\u8ba1\u6a21\u5f0f\u4e2d\u7684\u89c2\u5bdf\u8005\u6a21\u5f0f\u6bd4\u8f83\u76f8\u4f3c;pub\/sub\u4e0d\u4ec5\u4ec5\u89e3\u51b3\u53d1\u5e03\u8005\u548c\u8ba2\u9605\u8005\u76f4\u63a5\u4ee3\u7801\u7ea7\u522b\u8026\u5408\u4e5f\u89e3\u51b3\u4e24\u8005\u5728\u7269\u7406\u90e8\u7f72\u4e0a\u7684\u8026\u5408;<\/li>\n<li>redis\u4f5c\u4e3a\u4e00\u4e2apub\/sub server,\u5728\u8ba2\u9605\u8005\u548c\u53d1\u5e03\u8005\u4e4b\u95f4\u8d77\u5230\u4e86\u6d88\u606f\u8def\u7531\u7684\u529f\u80fd,\u8ba2\u9605\u8005\u53ef\u4ee5\u901a\u8fc7subscribe\u548cpsubscribe\u547d\u4ee4\u5411redis server\u8ba2\u9605\u81ea\u5df1\u611f\u5174\u8da3\u7684\u6d88\u606f\u7c7b\u578b,redis\u5c06\u6d88\u606f\u7c7b\u578b\u79f0\u4e3a\u901a\u9053(channel);<\/li>\n<li>\u5f53\u53d1\u5e03\u8005\u901a\u8fc7publish\u547d\u4ee4\u5411redis server\u53d1\u9001\u7279\u5b9a\u7c7b\u578b\u7684\u6d88\u606f\u65f6,\u8ba2\u9605\u8be5\u6d88\u606f\u7c7b\u578b\u7684\u5168\u90e8client\u90fd\u4f1a\u6536\u5230\u6b64\u6d88\u606f;\u8fd9\u91cc\u6d88\u606f\u7684\u4f20\u9012\u662f\u591a\u5bf9\u591a\u7684,\u4e00\u4e2aclient\u53ef\u4ee5\u8ba2\u9605\u591a\u4e2achannel,\u4e5f\u53ef\u4ee5\u5411\u591a\u4e2achannel\u53d1\u9001\u6d88\u606f;<\/li>\n<li>\u53d1\u5e03\/\u8ba2\u9605\u7684\u547d\u4ee4:\n<ol>\n<li>SUBSCRIBE channel [channel &#8230;]:Subscribes the client to the specified channels,Once the client enters the subscribed state it is not supposed to issue any other commands, except for additional SUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE and PUNSUBSCRIBE commands;<\/li>\n<li>PSUBSCRIBE pattern [pattern &#8230;]:Subscribes the client to the given patterns;<\/li>\n<li>UNSUBSCRIBE [channel [channel &#8230;]]:Unsubscribes the client from the given channels, or from all of them if none is given,When no channels are specified, the client is unsubscribed from all the previously subscribed channels. In this case, a message for every unsubscribed channel will be sent to the client;<\/li>\n<li>PUNSUBSCRIBE [pattern [pattern &#8230;]]:Unsubscribes the client from the given patterns;<\/li>\n<li>PUBLISH channel message:Posts a message to the given channel;\u00a0Integer reply:the number of clients that received the message;<\/li>\n<\/ol>\n<\/li>\n<li>\u5f00\u542f\u4e09\u4e2aredis-cli\u6d4b\u8bd5\u53d1\u5e03\u8ba2\u9605\u7684\u4f8b\u5b50;<\/li>\n<li>redis\u7684\u534f\u8bae\u662f\u6587\u672c\u7c7b\u578b\u7684,\u5177\u4f53\u94fe\u63a5\u4e3a:http:\/\/redis.io\/topics\/protocol;<\/li>\n<li>\u4f7f\u7528java\u5ba2\u6237\u7aef\u6765\u8ba2\u9605\u6d88\u606f;<\/li>\n<\/ol>\n<\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; \u53d1\u5e03\/\u8ba2\u9605\u6d4b\u8bd5\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div>&#8212; 1.\u6253\u5f00\u7b2c\u4e00\u4e2aredis-cli\u7684\u5ba2\u6237\u7aef\u8ba2\u9605news:snda\u548cnews:taobao\u4e24\u4e2achannels,\u6536\u5230redis-server\u8fd4\u56de\u8ba2\u9605\u6210\u529f\u7684\u6d88\u606f;<\/div>\n<div>redis 127.0.0.1:6379&gt; subscribe news:snda news:taobao<br \/>\nReading messages&#8230; (press Ctrl-C to quit)<br \/>\n1) &#8220;subscribe&#8221;<br \/>\n2) &#8220;news:snda&#8221;<br \/>\n3) (integer) 1<br \/>\n1) &#8220;subscribe&#8221;<br \/>\n2) &#8220;news:taobao&#8221;<br \/>\n3) (integer) 2<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(228).png\" width=\"860\" height=\"155\" \/><\/div>\n<div><\/div>\n<div>&#8212; 2.\u6253\u5f00\u7b2c\u4e8c\u4e2aredis-cli\u5ba2\u6237\u7aef,\u4f7f\u7528psubscribe\u8ba2\u9605news:*\u6a21\u5f0f(*\u8868\u793a\u4efb\u610f\u5b57\u7b26\u4e32)\u7684channels;<\/div>\n<div>redis 127.0.0.1:6379&gt; psubscribe news:*<br \/>\nReading messages&#8230; (press Ctrl-C to quit)<br \/>\n1) &#8220;psubscribe&#8221;<br \/>\n2) &#8220;news:*&#8221;<br \/>\n3) (integer) 1<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(229).png\" width=\"861\" height=\"100\" \/><\/div>\n<div><\/div>\n<div>&#8212; 3.\u6253\u5f00\u7b2c\u4e09\u4e2aredis-cli\u5ba2\u6237\u7aef,\u901a\u8fc7publish\u547d\u4ee4\u53d1\u5e03\u6d88\u606f,\u8fd4\u56de\u503c\u8868\u793a\u63a5\u6536\u5230\u6b64\u8ba2\u9605\u7684\u4e2a\u6570,\u901a\u8fc7\u8ba2\u9605\u7684\u7a97\u53e3\u67e5\u770b\u6d88\u606f;<\/div>\n<div>redis 127.0.0.1:6379&gt; publish news:snda &#8220;www.snda.com&#8221;<br \/>\n(integer) 2<br \/>\nredis 127.0.0.1:6379&gt; publish news:taobao &#8220;www.taobao.com&#8221;<br \/>\n(integer) 2<\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(230).png\" width=\"865\" height=\"98\" \/><\/div>\n<div><\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(231).png\" width=\"860\" height=\"265\" \/><\/div>\n<div><\/div>\n<div><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(232).png\" width=\"860\" height=\"239\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; \u53d1\u5e03\/\u8ba2\u9605\u6d4b\u8bd5\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0\u4f7f\u7528java\u5ba2\u6237\u7aef\u6765\u8ba2\u9605\u6d88\u606f\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<div align=\"left\"><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>import<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">java.io.InputStream;<\/span><\/div>\n<div align=\"left\"><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>import<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">java.io.OutputStream;<\/span><\/div>\n<div align=\"left\"><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>import<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">java.net.Socket;<\/span><\/div>\n<div align=\"left\"><span style=\"color: #010101; font-family: 'Courier New';\">\u00a0<\/span><\/div>\n<div align=\"left\"><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>public<\/b><\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>class<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">PubSubTest<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">{<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>private<\/b><\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>static<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">Socket\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>socket<\/i><\/span><span style=\"font-family: 'Courier New';\">;<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #7f0055; font-family: 'Courier New';\"><b>public<\/b><\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>static<\/b><\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>void<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">main(String[] args)<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0{<\/span><\/div>\n<div align=\"left\">\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span>\u00a0<span style=\"color: #3f7f5f; font-family: 'Courier New';\">\/\/ String\u00a0<span style=\"text-decoration: underline;\">cmd<\/span>\u00a0=\u00a0<span style=\"text-decoration: underline;\">args<\/span>[0] + &#8220;\\r\\n&#8221;;<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0String cmd =<\/span>\u00a0<span style=\"color: #2a00ff; font-family: 'Courier New';\">&#8220;subscribe news:snda news:taobao \\r\\n&#8221;<\/span><span style=\"font-family: 'Courier New';\">;<\/span><\/div>\n<\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>try<\/b><\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>socket<\/i><\/span>\u00a0<span style=\"font-family: 'Courier New';\">=<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>new<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">Socket(<\/span>\u00a0<span style=\"color: #2a00ff; font-family: 'Courier New';\">&#8220;192.168.10.112&#8221;<\/span><span style=\"font-family: 'Courier New';\">, 6379);<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0InputStream in =<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>socket<\/i><\/span><span style=\"font-family: 'Courier New';\">.getInputStream();<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0OutputStream out =<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>socket<\/i><\/span><span style=\"font-family: 'Courier New';\">.getOutputStream();<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0out.write(cmd.getBytes());<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #3f7f5f; font-family: 'Courier New';\">\/\/ \u53d1\u9001\u8ba2\u9605\u547d\u4ee4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>byte<\/b><\/span><span style=\"font-family: 'Courier New';\">[] buffer =<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>new<\/b><\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>byte<\/b><\/span><span style=\"font-family: 'Courier New';\">[1024];<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>while<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">(<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>true<\/b><\/span><span style=\"font-family: 'Courier New';\">)<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>int<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">readCount = in.read(buffer);<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>out<\/i><\/span><span style=\"font-family: 'Courier New';\">.write(buffer, 0, readCount);<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0System.<\/span>\u00a0<span style=\"color: #0000c0; font-family: 'Courier New';\"><i>out<\/i><\/span><span style=\"font-family: 'Courier New';\">.println(<\/span>\u00a0<span style=\"color: #2a00ff; font-family: 'Courier New';\">&#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8220;<\/span>\u00a0<span style=\"font-family: 'Courier New';\">);<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span>\u00a0<span style=\"color: #7f0055; font-family: 'Courier New';\"><b>catch<\/b><\/span>\u00a0<span style=\"font-family: 'Courier New';\">(Exception e)<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.printStackTrace();<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0\u00a0\u00a0\u00a0\u00a0}<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">}<\/span><\/div>\n<div align=\"left\"><span style=\"font-family: 'Courier New';\">\u00a0<\/span><\/div>\n<div align=\"left\"><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"file:\/\/\/C:\/TEMP\/enhtmlclip\/Image(233).png\" width=\"989\" height=\"436\" \/><\/div>\n<div>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0\u4f7f\u7528java\u5ba2\u6237\u7aef\u6765\u8ba2\u9605\u6d88\u606f\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Redis\u7684\u53d1\u5e03\u53ca\u8ba2\u9605 \u53d1\u5e03\u8ba2\u9605(pub\/sub)\u662f\u4e00\u79cd\u6d88\u606f\u901a\u4fe1\u6a21\u5f0f,\u4e3b\u8981\u7684\u76ee\u7684\u662f\u89e3\u51b3\u6d88\u606f\u53d1\u5e03\u8005\u548c\u6d88\u606f\u8ba2\u9605\u8005\u4e4b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[25,26],"class_list":["post-337","post","type-post","status-publish","format-standard","hentry","category-nosql","tag-nosql","tag-redis"],"_links":{"self":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=337"}],"version-history":[{"count":0,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/337\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}