{"id":1115,"date":"2016-03-16T15:19:10","date_gmt":"2016-03-16T07:19:10","guid":{"rendered":"http:\/\/jingxianhome.aliapp.com\/?p=1115"},"modified":"2016-03-16T15:19:56","modified_gmt":"2016-03-16T07:19:56","slug":"java-%e4%bd%bf%e7%94%a8jedis%e6%93%8d%e4%bd%9credis","status":"publish","type":"post","link":"https:\/\/www.yeetrack.com\/?p=1115","title":{"rendered":"Java \u4f7f\u7528Jedis\u64cd\u4f5cRedis"},"content":{"rendered":"<div id=\"preview-contents\" class=\"note-content\">\n<div id=\"wmd-preview-section-1330\" class=\"wmd-preview-section preview-content\">\n<p>redis\u662f\u5f88\u6d41\u884c\u7684\u7f13\u5b58\u5de5\u5177\uff0c\u5e38\u7528\u5728web\u548cdb\u4e4b\u95f4\uff0c\u5176\u6709\u591a\u79cd\u8bed\u8a00\u7684client\uff0c\u8fd9\u91cc\u7b80\u5355\u8bb0\u5f55\u4e0bjava client jedis\u7684\u5e38\u7528\u7528\u6cd5\u3002<!--more--><\/p>\n<pre class=\"prettyprint hljs-dark\"><code class=\"hljs processing\">    <span class=\"hljs-keyword\">import<\/span> org.slf4j.Logger;\n    <span class=\"hljs-keyword\">import<\/span> org.slf4j.LoggerFactory;\n    <span class=\"hljs-keyword\">import<\/span> org.testng.annotations.BeforeTest;\n    <span class=\"hljs-keyword\">import<\/span> org.testng.annotations.Test;\n    <span class=\"hljs-keyword\">import<\/span> redis.clients.jedis.Jedis;\n    <span class=\"hljs-keyword\">import<\/span> java.util.Date;\n    <span class=\"hljs-keyword\">import<\/span> java.util.<span class=\"hljs-keyword\">HashMap<\/span>;\n    <span class=\"hljs-keyword\">import<\/span> java.util.List;\n\n    <span class=\"hljs-comment\">\/**\n    * Created by kongkong on 16-3-15.\n    *\/<\/span>\n    <span class=\"hljs-keyword\">public<\/span> class App {\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">final<\/span> Logger logger = LoggerFactory.getLogger(App.class);\n        <span class=\"hljs-keyword\">private<\/span> Jedis jedis;\n\n        @BeforeTest\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> before() {\n            <span class=\"hljs-comment\">\/\/\u8fde\u63a5redis\u670d\u52a1\u5668\uff0cip\u5730\u5740\uff0c\u7aef\u53e3<\/span>\n            jedis = <span class=\"hljs-keyword\">new<\/span> Jedis(<span class=\"hljs-string\">\"pc\"<\/span>, <span class=\"hljs-number\">6379<\/span>);\n            <span class=\"hljs-comment\">\/\/\u5bc6\u7801\u8ba4\u8bc1<\/span>\n            jedis.auth(<span class=\"hljs-string\">\"admin\"<\/span>);\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testSetAndGet() {\n            <span class=\"hljs-comment\">\/\/\u5b58\u50a8\u666e\u901a\u5b57\u7b26\u4e32<\/span>\n            jedis.<span class=\"hljs-built_in\">set<\/span>(<span class=\"hljs-string\">\"name\"<\/span>, <span class=\"hljs-string\">\"Tom\"<\/span>);\n            jedis.<span class=\"hljs-built_in\">set<\/span>(<span class=\"hljs-string\">\"age\"<\/span>, <span class=\"hljs-string\">\"18\"<\/span>);\n\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.<span class=\"hljs-built_in\">get<\/span>(<span class=\"hljs-string\">\"name\"<\/span>));\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.<span class=\"hljs-built_in\">get<\/span>(<span class=\"hljs-string\">\"age\"<\/span>));\n\n            <span class=\"hljs-comment\">\/\/\u5b57\u7b26\u4e32\u62fc\u63a5<\/span>\n            jedis.<span class=\"hljs-built_in\">append<\/span>(<span class=\"hljs-string\">\"name\"<\/span>, <span class=\"hljs-string\">\"Tom\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.<span class=\"hljs-built_in\">get<\/span>(<span class=\"hljs-string\">\"name\"<\/span>));\n\n            <span class=\"hljs-comment\">\/\/\u5220\u9664\u952e\u503c\u5bf9<\/span>\n            jedis.del(<span class=\"hljs-string\">\"name\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.<span class=\"hljs-built_in\">get<\/span>(<span class=\"hljs-string\">\"name\"<\/span>)); <span class=\"hljs-comment\">\/\/null<\/span>\n\n            jedis.mset(<span class=\"hljs-string\">\"name\"<\/span>, <span class=\"hljs-string\">\"Lily\"<\/span>, <span class=\"hljs-string\">\"age\"<\/span>, <span class=\"hljs-string\">\"18\"<\/span>, <span class=\"hljs-string\">\"sex\"<\/span>, <span class=\"hljs-string\">\"F\"<\/span>);\n            <span class=\"hljs-comment\">\/\/\u7ed9\u6570\u5b57\u6267\u884c+1\u64cd\u4f5c<\/span>\n            jedis.incr(<span class=\"hljs-string\">\"age\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.<span class=\"hljs-built_in\">get<\/span>(<span class=\"hljs-string\">\"age\"<\/span>));\n            System.out.<span class=\"hljs-built_in\">println<\/span>(<span class=\"hljs-string\">\"end\"<\/span>);\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testMap() {\n            <span class=\"hljs-comment\">\/\/redis\u64cd\u4f5chashmap<\/span>\n            <span class=\"hljs-keyword\">HashMap<\/span>&lt;<span class=\"hljs-keyword\">String<\/span>,<span class=\"hljs-keyword\">String<\/span>&gt; hashMap = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">HashMap<\/span>&lt;<span class=\"hljs-keyword\">String<\/span>, <span class=\"hljs-keyword\">String<\/span>&gt;();\n            hashMap.put(<span class=\"hljs-string\">\"name\"<\/span>, <span class=\"hljs-string\">\"Lucy\"<\/span>);\n            hashMap.put(<span class=\"hljs-string\">\"age\"<\/span>, <span class=\"hljs-string\">\"15\"<\/span>);\n            hashMap.put(<span class=\"hljs-string\">\"sex\"<\/span>, <span class=\"hljs-string\">\"F\"<\/span>);\n\n            jedis.hmset(<span class=\"hljs-string\">\"user\"<\/span>, hashMap);\n\n            <span class=\"hljs-comment\">\/\/\u8bfb\u53d6hashmap<\/span>\n            List&lt;<span class=\"hljs-keyword\">String<\/span>&gt; mapGet = jedis.hmget(<span class=\"hljs-string\">\"user\"<\/span>, <span class=\"hljs-string\">\"name\"<\/span>, <span class=\"hljs-string\">\"age\"<\/span>, <span class=\"hljs-string\">\"sex\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(mapGet);\n\n            <span class=\"hljs-comment\">\/\/\u5220\u9664redis\u4e2dmap\u7684\u67d0\u4e2a\u5c5e\u6027<\/span>\n            jedis.hdel(<span class=\"hljs-string\">\"user\"<\/span>, <span class=\"hljs-string\">\"age\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.hkeys(<span class=\"hljs-string\">\"user\"<\/span>));\n            System.out.<span class=\"hljs-built_in\">println<\/span>(<span class=\"hljs-string\">\"end\"<\/span>);\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testList() {\n            <span class=\"hljs-comment\">\/\/\u64cd\u4f5clist<\/span>\n            jedis.flushAll();\n            jedis.lpush(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"Tom\"<\/span>);\n            jedis.lpush(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"Lily\"<\/span>);\n            jedis.rpush(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"aaa\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.lrange(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-number\">0<\/span>, -<span class=\"hljs-number\">1<\/span>));\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testSet() {\n            <span class=\"hljs-comment\">\/\/\u64cd\u4f5cSet<\/span>\n            jedis.del(<span class=\"hljs-string\">\"users\"<\/span>);\n            jedis.sadd(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"Tom\"<\/span>);\n            jedis.sadd(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"Lily\"<\/span>);\n            jedis.sadd(<span class=\"hljs-string\">\"users\"<\/span>, <span class=\"hljs-string\">\"who\"<\/span>);\n            System.out.<span class=\"hljs-built_in\">println<\/span>(jedis.smembers(<span class=\"hljs-string\">\"users\"<\/span>));\n            logger.info(jedis.smembers(<span class=\"hljs-string\">\"users\"<\/span>).toString());\n            logger.info(<span class=\"hljs-string\">\"Hello\"<\/span>);\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testSort() {\n            <span class=\"hljs-comment\">\/\/Redis\u6392\u5e8f<\/span>\n            jedis.del(<span class=\"hljs-string\">\"num\"<\/span>);\n            jedis.lpush(<span class=\"hljs-string\">\"num\"<\/span>, <span class=\"hljs-string\">\"1\"<\/span>);\n            jedis.lpush(<span class=\"hljs-string\">\"num\"<\/span>, <span class=\"hljs-string\">\"2\"<\/span>);\n            jedis.rpush(<span class=\"hljs-string\">\"num\"<\/span>, <span class=\"hljs-string\">\"3\"<\/span>);\n            jedis.lpush(<span class=\"hljs-string\">\"num\"<\/span>, <span class=\"hljs-string\">\"4\"<\/span>);\n\n            logger.info(jedis.lrange(<span class=\"hljs-string\">\"num\"<\/span>, <span class=\"hljs-number\">0<\/span>, -<span class=\"hljs-number\">1<\/span>).toString());\n            logger.info(jedis.<span class=\"hljs-built_in\">sort<\/span>(<span class=\"hljs-string\">\"num\"<\/span>).toString());\n        }\n\n        @Test\n        <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> testPool() <span class=\"hljs-keyword\">throws<\/span> Exception{\n            <span class=\"hljs-comment\">\/\/\u6d4b\u8bd5\u8fde\u63a5\u6c60<\/span>\n            <span class=\"hljs-keyword\">for<\/span>(<span class=\"hljs-built_in\">int<\/span> i=<span class=\"hljs-number\">1<\/span>; i&lt;=<span class=\"hljs-number\">5<\/span>; i++) {\n                <span class=\"hljs-keyword\">new<\/span> Thread(runnable).start();\n                System.out.<span class=\"hljs-built_in\">println<\/span>(i);\n            }\n            Thread.sleep(<span class=\"hljs-number\">5000<\/span>);\n        }\n\n        Runnable runnable = <span class=\"hljs-keyword\">new<\/span> Runnable() {\n            @Override\n            <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> run() {\n                Jedis jedis1 = RedisUtil.getJedis();\n                <span class=\"hljs-keyword\">String<\/span> <span class=\"hljs-variable\">key<\/span> = <span class=\"hljs-string\">\"\"<\/span>+ <span class=\"hljs-keyword\">new<\/span> Date().getTime();\n                System.out.<span class=\"hljs-built_in\">println<\/span>(<span class=\"hljs-variable\">key<\/span>);\n                jedis1.<span class=\"hljs-built_in\">set<\/span>(<span class=\"hljs-variable\">key<\/span>, <span class=\"hljs-string\">\"1\"<\/span>);\n                RedisUtil.returnResource(jedis1);\n            }\n        };\n    }\n<\/code><\/pre>\n<p><code>RedisUtil.java<\/code>:<\/p>\n<pre class=\"prettyprint hljs-dark\"><code class=\"hljs java\">    <span class=\"hljs-keyword\">import<\/span> redis.clients.jedis.Jedis;\n    <span class=\"hljs-keyword\">import<\/span> redis.clients.jedis.JedisPool;\n    <span class=\"hljs-keyword\">import<\/span> redis.clients.jedis.JedisPoolConfig;\n\n    <span class=\"hljs-comment\">\/**\n     * Created by kongkong on 16-3-16.\n     *\/<\/span>\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">RedisUtil<\/span> <\/span>{\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> String ADDR = <span class=\"hljs-string\">\"pc\"<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">int<\/span> PORT = <span class=\"hljs-number\">6379<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> String AUTH = <span class=\"hljs-string\">\"admin\"<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">int<\/span> MAX_ACTIVE = <span class=\"hljs-number\">200<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">int<\/span> MAX_IDLE = <span class=\"hljs-number\">20<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">int<\/span> MAX_WAIT = <span class=\"hljs-number\">50<\/span> * <span class=\"hljs-number\">1000<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">int<\/span> TIME_OUT = <span class=\"hljs-number\">1000<\/span>;\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">boolean<\/span> TEST_ON_BORROW = <span class=\"hljs-keyword\">true<\/span>;\n        <span class=\"hljs-keyword\">private<\/span>  <span class=\"hljs-keyword\">static<\/span> JedisPool jedisPool = <span class=\"hljs-keyword\">null<\/span>;\n        <span class=\"hljs-comment\">\/**\n         * \u521d\u59cb\u5316Redis\u8fde\u63a5\u6c60\n         *\/<\/span>\n        <span class=\"hljs-keyword\">static<\/span> {\n            <span class=\"hljs-keyword\">try<\/span> {\n                JedisPoolConfig config = <span class=\"hljs-keyword\">new<\/span> JedisPoolConfig();\n                config.setMaxTotal(MAX_ACTIVE);\n                config.setMaxIdle(MAX_IDLE);\n                config.setMaxWaitMillis(MAX_WAIT);\n                config.setTestOnBorrow(TEST_ON_BORROW);\n                jedisPool = <span class=\"hljs-keyword\">new<\/span> JedisPool(config, ADDR, PORT, TIME_OUT, AUTH);\n            } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n                e.printStackTrace();\n            }\n        }\n\n        <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">synchronized<\/span> <span class=\"hljs-keyword\">static<\/span> Jedis <span class=\"hljs-title\">getJedis<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n            <span class=\"hljs-keyword\">try<\/span> {\n                <span class=\"hljs-keyword\">if<\/span>(<span class=\"hljs-keyword\">null<\/span> != jedisPool) {\n                    Jedis resource = jedisPool.getResource();\n                    <span class=\"hljs-keyword\">return<\/span> resource;\n                } <span class=\"hljs-keyword\">else<\/span> {\n                    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">null<\/span>;\n                }\n            } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n                e.printStackTrace();\n                <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">null<\/span>;\n            }\n        }\n\n        <span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">returnResource<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">final<\/span> Jedis jedis)<\/span> <\/span>{\n            <span class=\"hljs-keyword\">if<\/span>(<span class=\"hljs-keyword\">null<\/span> != jedis) {\n                jedis.close();\n            }\n        }\n    }<\/code><\/pre>\n<\/div>\n<\/div>\n<p><!--more--><\/p>\n<p><!--more--><\/p>\n<p><!--more--><\/p>\n<p><!--more--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>redis\u662f\u5f88\u6d41\u884c\u7684\u7f13\u5b58\u5de5\u5177\uff0c\u5e38\u7528\u5728web\u548cdb\u4e4b\u95f4\uff0c\u5176\u6709\u591a\u79cd\u8bed\u8a00\u7684client\uff0c\u8fd9\u91cc\u7b80\u5355\u8bb0\u5f55\u4e0bjava client jedis\u7684\u5e38\u7528\u7528\u6cd5\u3002<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[33],"tags":[8,54,13],"class_list":["post-1115","post","type-post","status-publish","format-standard","hentry","category-coding","tag-java","tag-redis","tag-13"],"views":3061,"_links":{"self":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1115"}],"version-history":[{"count":2,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1115\/revisions"}],"predecessor-version":[{"id":1117,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/1115\/revisions\/1117"}],"wp:attachment":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}