jedis-JAVA操作Redis
<svg xmlns="http://www.w3.org/2000/svg" style="display: none">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path>
</svg>
<h2 id="java连接redis客户端"><strong>Java连接Redis客户端</strong></h2>
jedis对 string 、set、sortset、list、hash 的所有常规操作。
更多精彩请阅读 东陆之滇的 csdn 博客:http://blog.csdn.net/zixiao217
我们使用 maven 工程测试开发,首先引入 jedis.jar:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
若对 Redis 命令还没有一点概念,请阅读笔者前面的文章。这里直接上代码,简单粗暴:
package org.byron4j.redis_case;
import java.text.SimpleDateFormat;
import java.util.Date;
import redis.clients.jedis.Jedis;
/**
- Hello world!
*/
public class App
{
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH🇲🇲ss");
public static void main(String[] args ) throws Throwable
{
Jedis jedis = new Jedis("localhost");
<span class="hljs-comment">/**
*
*/</span>
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> + <span class="hljs-string">"清空当前数据库实例全部键:"</span> + jedis.flushDB());
<span class="hljs-comment">/**
* 对字符串类型操作
*/</span>
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"字符串类型set的返回:"</span> + jedis.set(<span class="hljs-string">"foo"</span>, <span class="hljs-string">"bar"</span>));
<span class="hljs-type">String</span> <span class="hljs-variable">value</span> <span class="hljs-operator">=</span> jedis.get(<span class="hljs-string">"foo"</span>);
System.out.println( sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"使用get获取字符串键值:"</span> + value);
<span class="hljs-comment">/**
* 对列表类型操作
* -- 将val1放到对头,再将val2放到对头,这时候val1到了队尾,rpop获取队尾元素得到val1.
*/</span>
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"lpush往列表头插入一个元素:"</span> + jedis.lpush(<span class="hljs-string">"code_list1"</span>, <span class="hljs-string">"val1"</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"lpush往列表头插入一个元素:"</span> + jedis.lpush(<span class="hljs-string">"code_list1"</span>, <span class="hljs-string">"val2"</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"lpush往列表尾取出一个元素:"</span> + jedis.rpop(<span class="hljs-string">"code_list1"</span>));
<span class="hljs-comment">/**
* 设置超时
*/</span>
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"lpush往列表头插入一个元素:"</span> + jedis.lpush(<span class="hljs-string">"ttl_list1"</span>, <span class="hljs-string">"val1"</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"设置超时时间10秒:"</span> + jedis.expire(<span class="hljs-string">"ttl_list1"</span>, <span class="hljs-number">10</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"停顿3秒后..."</span>);
Thread.sleep(<span class="hljs-number">3000</span>);
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"查看剩余存活时间:"</span> + jedis.ttl(<span class="hljs-string">"ttl_list1"</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"查看数据库中的键:"</span> + jedis.keys(<span class="hljs-string">"*"</span>));
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"再停顿7秒..."</span>);
Thread.sleep(<span class="hljs-number">7000</span>);
System.out.println(sdf.format(<span class="hljs-keyword">new</span> <span class="hljs-title class_">Date</span>()) + <span class="hljs-string">" - "</span> +<span class="hljs-string">"查看数据库中的键:"</span> + jedis.keys(<span class="hljs-string">"*"</span>));
}
}
运行结果,一目了然:
2016-10-08 17:46:00 - 清空当前数据库实例全部键:OK
2016-10-08 17:46:00 - 字符串类型set的返回:OK
2016-10-08 17:46:00 - 使用get获取字符串键值:bar
2016-10-08 17:46:00 - lpush往列表头插入一个元素:1
2016-10-08 17:46:00 - lpush往列表头插入一个元素:2
2016-10-08 17:46:00 - lpush往列表尾取出一个元素:val1
2016-10-08 17:46:00 - lpush往列表头插入一个元素:1
2016-10-08 17:46:00 - 设置超时时间10秒:1
2016-10-08 17:46:00 - 停顿3秒后...
2016-10-08 17:46:03 - 查看剩余存活时间:7
2016-10-08 17:46:03 - 查看数据库中的键:[code_list1, ttl_list1, foo]
2016-10-08 17:46:03 - 再停顿7秒...
2016-10-08 17:46:10 - 查看数据库中的键:[code_list1, foo]
记得自己动手实验,现在你已经入门了,对于 java 中的 redis 编程。