JAVA入门[21]-Jedis操作redis示例
本节目标
通过JedisPool获取Jedis示例,并完成对redis 简单的Key-value读写操作。
完整代码结构如下:

redis服务端
在本地运行redis-server.exe,然后在resources新建jedis.properties:
redis.host=localhost
redis.port=
配置jedis
我们将jedis相关配置放在单独的Spring Config中,在resources/spring目录新建applicationContext-jedis.xml。
<!-- 加载配置属性文件 -->
<context:property-placeholder ignore-unresolvable="true" location="classpath*:jedis.properties"/> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value=""/> <!-- 最大能够保持idel状态的对象数 -->
<property name="maxTotal" value=""/> <!-- 最大分配的对象数 -->
<property name="testOnBorrow" value="true"/> <!-- 当调用borrow Object方法时,是否进行有效性检查 -->
</bean> <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="" ref="jedisPoolConfig"/>
<constructor-arg index="" value="${redis.host}" type="java.lang.String"/>
<constructor-arg index="" value="${redis.port}" type="int"/>
</bean>
测试
添加单元测试,通过@Resource注解获取JedisPool实例对象。
@Resource
private JedisPool jedisPool;
然后调用jedisPool对象的getResource()方法就可以获取到Jedis实例了。
Jedis jedis = jedisPool.getResource();
先测试个最基本的get,set操作
@Test
public void TestRedis() {
Jedis jedis = jedisPool.getResource(); String key = "a";
jedis.set(key, "111"); String data = jedis.get(key); System.out.println(data); }
运行结果:111
再测试个列表操作:
@Test
public void testList(){
Jedis jedis=jedisPool.getResource(); String key="articles"; jedis.lpush(key,"文章1");
jedis.lpush(key,"文章2");
jedis.lpush(key,"文章3"); List<String> articles=jedis.lrange(key,0,3);
for(String article:articles){
System.out.println(article);
}
}
运行结果:
文章3
文章2
文章1
再来个集合操作:
@Test
public void testSet(){
Jedis jedis=jedisPool.getResource(); String key="tags";
jedis.sadd(key,"宝马");
jedis.sadd(key,"豪车");
jedis.sadd(key,"SUV");
jedis.sadd(key,"SUV"); Set<String> tags=jedis.smembers(key);
for(String tag:tags){
System.out.println(tag);
}
}
运行结果:
宝马
豪车
SUV
先到这里吧,SO EASY!!
源码地址:https://github.com/cathychen00/learnjava/tree/master/DemoRedis
JAVA入门[21]-Jedis操作redis示例的更多相关文章
- JAVA中通过Jedis操作Redis连接与插入简单库
		
一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...
 - Java中使用Jedis操作Redis(转载)
		
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
 - 【转载】Java中使用Jedis操作Redis
		
1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Li ...
 - (转)Java中使用Jedis操作Redis
		
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
 - Java中使用Jedis操作Redis
		
使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...
 - Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池
		
如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...
 - 【JAVA】使用 jedis操作redis——连接、存储数据、切库等
		
本篇运用Java调用jedis包(jedis在线文档API ),做简单操作实例. 安装jedis 1. 2.9.0 jar 版本下载: jedis-2.9.0.jar 2. 新建项目,添加该驱动包 连 ...
 - Java中使用Jedis操作Redis之二
		
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.J ...
 - <Redis> 入门四 Jedis操作Redis
		
pom依赖 <dependencies> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> < ...
 
随机推荐
- Python把给定的列表转化成二叉树
			
在LeetCode上做题时,有很多二叉树相关题目的测试数据是用列表给出的,提交的时候有时会出现一些数据通不过,这就需要在本地调试,因此需要使用列表来构建二叉树,方便自己调试.LeetCode上二叉树结 ...
 - PHP基础入门(三)【PHP中的数组】
			
PHP数组的分类 按照下标的不同,PHP数组分为关联数组与索引数组: 索引数组:下标从0开始,依次增长: 关联数组: 下标为字符串格式,每个下标字符串与数组的值一一关联对应.(有点像对象的键值对) 关 ...
 - android wear开发之:创建可穿戴设备应用  - Creating Wearable Apps
			
注:本文内容来自:https://developer.android.com/training/wearables/apps/index.html 翻译水平有限,如有疏漏,欢迎批评指教. 译:山人 创 ...
 - Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常。
			
Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常. 64位系统下,部署32位odp.net,出现问题.解决方法:卸载32位xcopy odt.n ...
 - python基础(三)----字符编码以及文件处理
			
字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...
 - radis学习总结
			
Redis与Memcached的比较. 1.Memcached是多线程,而Redis使用单线程. 2.Memcached使用预分配的内存池的方式,Redis使用现场申请内存的方式来存储数据,并且可以配 ...
 - 【转】Entity Framework 5.0系列之约定配置
			
Code First之所以能够让开发人员以一种更加高效.灵活的方式进行数据操作有一个重要的原因在于它的约定配置.现在软件开发越来复杂,大家也都试图将软件设计的越来越灵活,很多内容我们都希望是可配置的, ...
 - 如何基于 eolinker 的进行接口管理
			
由于工作的原因,经常要接触到很多API接口,而API接口在设计时往往需要编写大量的文档,而且编写完成后往往需要根据实际情况,经常改动文档,这使得文档编写维护工作量相对较大,这让我也包括很多的开发者都很 ...
 - .NET Core工程编译事件$(TargetDir)变量为空引发的思考
			
前言 最近客户反馈,为啥不用xcopy命令代替我自己写的命令来完成插件编译复制: 我的: <PostBuildEvent>call "$(SolutionDir)tools\to ...
 - 【S2-052】漏洞复现(CVE-2017-9805)
			
一.漏洞描述 Struts2 的REST插件,如果带有XStream组件,那么在进行反序列化XML请求时,存在未对数据内容进行有效验证的安全隐患,可能发生远程命令执行. 二.受影响版本 Struts2 ...