Jedis简介
- Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等
- 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。
Jedis同样也是托管在github上,github地址: https://github.com/xetorthio/jedis ;
Spring整合Jedis
- 创建maven项目(略)
- 部署SSM框架(略)
- 在pom.xml中添加Jedis依赖
redis.clients jedis 2.9.0org.springframework.data spring-data-redis 2.0.12.RELEASE
- 在resources目录创建redis.properties文件并配置redis连接信息
redis.usePool=trueredis.hostName=129.28.64.165redis.port=6379redis.password=123456
- 在resources目录下创建spring-context-redis.xml,依赖spring容器创建redisTemplate对象
<?xml version="1.0" encoding="UTF-8"?>
- 测试Jedis整合结果
- 导入测试依赖库
junit junit 4.12org.springframework spring-test 5.1.9.RELEASE
-
- 创建测试类
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class RedisTemplateTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void test(){ System.out.println(redisTemplate); }}
Jedis基本操作
- string操作
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class StringTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ redisTemplate.boundValueOps("name").set("kangshifu"); } @Test public void testGet(){ String v = redisTemplate.boundValueOps("name").get(); System.out.println(v); }}
- hash操作
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class HashTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ redisTemplate.boundHashOps("map").put("k1","v1"); redisTemplate.boundHashOps("map").put("k2","v2"); } @Test public void testGet(){ //根据key取value Object v = redisTemplate.boundHashOps("map").get("k1"); System.out.println(v); //获取所有键值对 Map m = redisTemplate.boundHashOps("map").entries(); Set keys = m.keySet(); Iterator it = keys.iterator(); while(it.hasNext()){ String key = it.next(); String value = (String)m.get(key); System.out.println(key+"---"+value); } }}
- List操作
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class ListTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ //redisTemplate.boundListOps("list1").rightPush("a",); //redisTemplate.boundListOps("list1").rightPush("a","b"); redisTemplate.boundListOps("list1").rightPushAll("a","b","c","d","e"); } @Test public void testGet(){ //String v = redisTemplate.boundListOps("list1").leftPop(); //String v = redisTemplate.boundListOps("list1").rightPop(); long size = redisTemplate.boundListOps("list1").size(); List list = redisTemplate.boundListOps("list1").range(0,size-1); list.forEach((i)-> System.out.println(i)); System.out.println(list); }}
- 无序set
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class SetTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ redisTemplate.boundSetOps("set1").add("a","b","c","d"); } @Test public void testGet(){ Set set1 = redisTemplate.boundSetOps("set1").members(); System.out.println(set1); }}
- 有序set
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath:spring-context.xml","classpath:spring-context-redis.xml"})public class ZSetTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ redisTemplate.boundZSetOps("set2").add("aaa",1); redisTemplate.boundZSetOps("set2").add("bbb",2); redisTemplate.boundZSetOps("set2").add("ccc",3); redisTemplate.boundZSetOps("set2").add("ddd",4); } @Test public void testGet(){ long l =redisTemplate.boundZSetOps("set2").size(); Set set2 = redisTemplate.boundZSetOps("set2").range(0,l); System.out.println(set2); }}
结束语
“头条号”新人,从事互联网行业工作10年,期望与大家的技术交流,多多关照!
如果此文章对你有帮助,欢迎关注、评论!
![95cab96cc503a1ec4296dee630b3dde6.png](https://i-blog.csdnimg.cn/blog_migrate/a11e44baf84cdb13e09c8aa6715f6170.jpeg)