{"id":3171,"date":"2019-04-19T19:49:29","date_gmt":"2019-04-19T11:49:29","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=3171"},"modified":"2019-04-19T19:49:29","modified_gmt":"2019-04-19T11:49:29","slug":"golang-redis%e8%bf%9e%e6%8e%a5%e6%b1%a0%e7%9a%84%e4%bd%bf%e7%94%a8","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/3171","title":{"rendered":"golang redis\u8fde\u63a5\u6c60\u7684\u4f7f\u7528"},"content":{"rendered":"<div class=\"title\">\n<p id=\"title\" data-id=\"12230\"><a href=\"https:\/\/studygolang.com\/articles\/12230\">\u539f\u5e16\u5730\u5740<\/a><\/p>\n<p data-id=\"12230\">\n<p><small class=\"c9\"><\/small><\/div>\n<div class=\"cell\">\n<div class=\"content markdown-body\">\n<pre class=\"line-numbers language-golang\"><code class=\" language-golang\"><span class=\"token keyword\">package<\/span> main\r\n\r\n<span class=\"token keyword\">import<\/span> <span class=\"token operator\">(<\/span>\r\n    <span class=\"token string\">\"encoding\/json\"<\/span>\r\n    <span class=\"token string\">\"errors\"<\/span>\r\n    <span class=\"token string\">\"fmt\"<\/span>\r\n    <span class=\"token string\">\"time\"<\/span>\r\n\r\n    <span class=\"token string\">\"github.com\/garyburd\/redigo\/redis\"<\/span>\r\n<span class=\"token operator\">)<\/span>\r\n\r\n<span class=\"token keyword\">const<\/span> <span class=\"token operator\">(<\/span>\r\n    RedisURL            <span class=\"token operator\">=<\/span> <span class=\"token string\">\"redis:\/\/*****:6379\"<\/span>\r\n    redisMaxIdle        <span class=\"token operator\">=<\/span> <span class=\"token number\">3<\/span>   <span class=\"token comment\" spellcheck=\"true\">\/\/\u6700\u5927\u7a7a\u95f2\u8fde\u63a5\u6570<\/span>\r\n    redisIdleTimeoutSec <span class=\"token operator\">=<\/span> <span class=\"token number\">240<\/span> <span class=\"token comment\" spellcheck=\"true\">\/\/\u6700\u5927\u7a7a\u95f2\u8fde\u63a5\u65f6\u95f4<\/span>\r\n    RedisPassword       <span class=\"token operator\">=<\/span> <span class=\"token string\">\"*****\"<\/span>\r\n<span class=\"token operator\">)<\/span>\r\n\r\n<span class=\"token comment\" spellcheck=\"true\">\/\/ NewRedisPool \u8fd4\u56deredis\u8fde\u63a5\u6c60<\/span>\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>redisURL <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">*<\/span>redis<span class=\"token operator\">.<\/span>Pool <span class=\"token operator\">{<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token operator\">&amp;<\/span>redis<span class=\"token operator\">.<\/span>Pool<span class=\"token operator\">{<\/span>\r\n        MaxIdle<span class=\"token operator\">:<\/span>     redisMaxIdle<span class=\"token operator\">,<\/span>\r\n        IdleTimeout<span class=\"token operator\">:<\/span> redisIdleTimeoutSec <span class=\"token operator\">*<\/span> time<span class=\"token operator\">.<\/span>Second<span class=\"token operator\">,<\/span>\r\n        Dial<span class=\"token operator\">:<\/span> <span class=\"token keyword\">func<\/span><span class=\"token operator\">(<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">(<\/span>redis<span class=\"token operator\">.<\/span>Conn<span class=\"token operator\">,<\/span> <span class=\"token builtin\">error<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">{<\/span>\r\n            c<span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> redis<span class=\"token operator\">.<\/span><span class=\"token function\">DialURL<span class=\"token punctuation\">(<\/span><\/span>redisURL<span class=\"token operator\">)<\/span>\r\n            <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n                <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span><span class=\"token operator\">,<\/span> fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Errorf<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"redis connection error: %s\"<\/span><span class=\"token operator\">,<\/span> err<span class=\"token operator\">)<\/span>\r\n            <span class=\"token operator\">}<\/span>\r\n            <span class=\"token comment\" spellcheck=\"true\">\/\/\u9a8c\u8bc1redis\u5bc6\u7801<\/span>\r\n            <span class=\"token keyword\">if<\/span> <span class=\"token boolean\">_<\/span><span class=\"token operator\">,<\/span> authErr <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"AUTH\"<\/span><span class=\"token operator\">,<\/span> RedisPassword<span class=\"token operator\">)<\/span><span class=\"token operator\">;<\/span> authErr <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n                <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span><span class=\"token operator\">,<\/span> fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Errorf<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"redis auth password error: %s\"<\/span><span class=\"token operator\">,<\/span> authErr<span class=\"token operator\">)<\/span>\r\n            <span class=\"token operator\">}<\/span>\r\n            <span class=\"token keyword\">return<\/span> c<span class=\"token operator\">,<\/span> err\r\n        <span class=\"token operator\">}<\/span><span class=\"token operator\">,<\/span>\r\n        TestOnBorrow<span class=\"token operator\">:<\/span> <span class=\"token keyword\">func<\/span><span class=\"token operator\">(<\/span>c redis<span class=\"token operator\">.<\/span>Conn<span class=\"token operator\">,<\/span> t time<span class=\"token operator\">.<\/span>Time<span class=\"token operator\">)<\/span> <span class=\"token builtin\">error<\/span> <span class=\"token operator\">{<\/span>\r\n            <span class=\"token boolean\">_<\/span><span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"PING\"<\/span><span class=\"token operator\">)<\/span>\r\n            <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n                <span class=\"token keyword\">return<\/span> fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Errorf<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"ping redis error: %s\"<\/span><span class=\"token operator\">,<\/span> err<span class=\"token operator\">)<\/span>\r\n            <span class=\"token operator\">}<\/span>\r\n            <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span>\r\n        <span class=\"token operator\">}<\/span><span class=\"token operator\">,<\/span>\r\n    <span class=\"token operator\">}<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">set<span class=\"token punctuation\">(<\/span><\/span>k<span class=\"token operator\">,<\/span> v <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token boolean\">_<\/span><span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"SET\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">,<\/span> v<span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"set error\"<\/span><span class=\"token operator\">,<\/span> err<span class=\"token operator\">.<\/span><span class=\"token function\">Error<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token operator\">}<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">getStringValue<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token builtin\">string<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    username<span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> redis<span class=\"token operator\">.<\/span><span class=\"token function\">String<span class=\"token punctuation\">(<\/span><\/span>c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"GET\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"Get Error: \"<\/span><span class=\"token operator\">,<\/span> err<span class=\"token operator\">.<\/span><span class=\"token function\">Error<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n        <span class=\"token keyword\">return<\/span> <span class=\"token string\">\"\"<\/span>\r\n    <span class=\"token operator\">}<\/span>\r\n    <span class=\"token keyword\">return<\/span> username\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">SetKeyExpire<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">,<\/span> ex <span class=\"token builtin\">int<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token boolean\">_<\/span><span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"EXPIRE\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">,<\/span> ex<span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"set error\"<\/span><span class=\"token operator\">,<\/span> err<span class=\"token operator\">.<\/span><span class=\"token function\">Error<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token operator\">}<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">CheckKey<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token builtin\">bool<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    exist<span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> redis<span class=\"token operator\">.<\/span><span class=\"token function\">Bool<span class=\"token punctuation\">(<\/span><\/span>c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"EXISTS\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span>err<span class=\"token operator\">)<\/span>\r\n        <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">false<\/span>\r\n    <span class=\"token operator\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token operator\">{<\/span>\r\n        <span class=\"token keyword\">return<\/span> exist\r\n    <span class=\"token operator\">}<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">DelKey<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token builtin\">error<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token boolean\">_<\/span><span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"DEL\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span>err<span class=\"token operator\">)<\/span>\r\n        <span class=\"token keyword\">return<\/span> err\r\n    <span class=\"token operator\">}<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">SetJson<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">,<\/span> data <span class=\"token keyword\">interface<\/span><span class=\"token operator\">{<\/span><span class=\"token operator\">}<\/span><span class=\"token operator\">)<\/span> <span class=\"token builtin\">error<\/span> <span class=\"token operator\">{<\/span>\r\n    c <span class=\"token operator\">:=<\/span> <span class=\"token function\">NewRedisPool<span class=\"token punctuation\">(<\/span><\/span>RedisURL<span class=\"token operator\">)<\/span><span class=\"token operator\">.<\/span><span class=\"token function\">Get<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">defer<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Close<span class=\"token punctuation\">(<\/span><\/span><span class=\"token operator\">)<\/span>\r\n    value<span class=\"token operator\">,<\/span> <span class=\"token boolean\">_<\/span> <span class=\"token operator\">:=<\/span> json<span class=\"token operator\">.<\/span><span class=\"token function\">Marshal<span class=\"token punctuation\">(<\/span><\/span>data<span class=\"token operator\">)<\/span>\r\n    n<span class=\"token operator\">,<\/span> <span class=\"token boolean\">_<\/span> <span class=\"token operator\">:=<\/span> c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"SETNX\"<\/span><span class=\"token operator\">,<\/span> k<span class=\"token operator\">,<\/span> value<span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> n <span class=\"token operator\">!=<\/span> <span class=\"token function\">int64<span class=\"token punctuation\">(<\/span><\/span><span class=\"token number\">1<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">{<\/span>\r\n        <span class=\"token keyword\">return<\/span> errors<span class=\"token operator\">.<\/span><span class=\"token function\">New<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"set failed\"<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token operator\">}<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span>\r\n<span class=\"token operator\">}<\/span>\r\n\r\n<span class=\"token keyword\">func<\/span> <span class=\"token function\">getJsonByte<span class=\"token punctuation\">(<\/span><\/span>k <span class=\"token builtin\">string<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">(<\/span><span class=\"token operator\">[<\/span><span class=\"token operator\">]<\/span><span class=\"token builtin\">byte<\/span><span class=\"token operator\">,<\/span> <span class=\"token builtin\">error<\/span><span class=\"token operator\">)<\/span> <span class=\"token operator\">{<\/span>\r\n    jsonGet<span class=\"token operator\">,<\/span> err <span class=\"token operator\">:=<\/span> redis<span class=\"token operator\">.<\/span><span class=\"token function\">Bytes<span class=\"token punctuation\">(<\/span><\/span>c<span class=\"token operator\">.<\/span><span class=\"token function\">Do<span class=\"token punctuation\">(<\/span><\/span><span class=\"token string\">\"GET\"<\/span><span class=\"token operator\">,<\/span> key<span class=\"token operator\">)<\/span><span class=\"token operator\">)<\/span>\r\n    <span class=\"token keyword\">if<\/span> err <span class=\"token operator\">!=<\/span> <span class=\"token boolean\">nil<\/span> <span class=\"token operator\">{<\/span>\r\n        fmt<span class=\"token operator\">.<\/span><span class=\"token function\">Println<span class=\"token punctuation\">(<\/span><\/span>err<span class=\"token operator\">)<\/span>\r\n        <span class=\"token keyword\">return<\/span> <span class=\"token boolean\">nil<\/span><span class=\"token operator\">,<\/span> err\r\n    <span class=\"token operator\">}<\/span>\r\n    <span class=\"token keyword\">return<\/span> jsonGet<span class=\"token operator\">,<\/span> <span class=\"token boolean\">nil<\/span>\r\n<span class=\"token operator\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u5e16\u5730\u5740 package main im<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[122],"class_list":["post-3171","post","type-post","status-publish","format-standard","hentry","tag-06-godocker"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=3171"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/3171\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=3171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=3171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=3171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}