Redis6 系列六 Redis_Jedis到与Spring Boot整合

本文介绍了如何在Java项目中使用Jedis连接和操作Redis,包括添加依赖、配置连接参数、执行基本操作如设置键值、获取键值、操作列表、集合、哈希和有序集合等。此外,还提到了SpringBoot与Redis的整合,展示了配置步骤和测试方法。
摘要由CSDN通过智能技术生成

1.   Redis_Jedis_测试

1.1.   Jedis所需要的jar

 

<dependency>  <groupId>redis.clients</groupId>  <artifactId>jedis</artifactId>  <version>3.2.0</version></dependency>

 

 

1.2.   连接Redis注意事项

禁用Linux的防火墙:Linux(CentOS7)里执行命令

systemctl stop/disablefirewalld.service  

redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no

1.3.   Jedis常用操作

1.3.1.    创建动态的工程

 

1.3.2.    创建测试程序

 

package com.atguigu.jedis;import redis.clients.jedis.Jedis;public class Demo01 {public static void main(String[] args) {Jedis jedis = new Jedis("192.168.137.3",6379);String pong = jedis.ping();System.out.println("连接成功:"+pong);jedis.close();}}

 

1.4.   测试相关数据类型

1.4.1.    Jedis-API:    Key

jedis.set("k1",  "v1");jedis.set("k2",  "v2");jedis.set("k3",  "v3");Set<String> keys = jedis.keys("*");System.out.println(keys.size());for (String key : keys) {System.out.println(key);}System.out.println(jedis.exists("k1"));System.out.println(jedis.ttl("k1"));               System.out.println(jedis.get("k1"));

1.4.2.    Jedis-API:    String

 

jedis.mset("str1","v1","str2","v2","str3","v3");System.out.println(jedis.mget("str1","str2","str3"));

 

1.4.3.    Jedis-API:    List

List<String> list = jedis.lrange("mylist",0,-1);for (String element : list) {System.out.println(element);}

1.4.4.    Jedis-API:    set

jedis.sadd("orders",  "order01");jedis.sadd("orders",  "order02");jedis.sadd("orders",  "order03");jedis.sadd("orders",  "order04");Set<String> smembers = jedis.smembers("orders");for (String order : smembers) {System.out.println(order);}jedis.srem("orders",  "order02");

 

1.4.5.    Jedis-API:    hash

 

jedis.hset("hash1","userName","lisi");System.out.println(jedis.hget("hash1","userName"));Map<String,String> map = new HashMap<String,String>();map.put("telphone","13810169999");map.put("address","atguigu");map.put("email","abc@163.com");jedis.hmset("hash2",map);List<String> result = jedis.hmget("hash2",  "telphone","email");for (String element : result) {System.out.println(element);}

1.4.6.    Jedis-API:    zset

  • is.zadd("zset01", 100d, "z3");jedis.zadd("zset01", 90d, "l4");jedis.zadd("zset01", 80d, "w5");jedis.zadd("zset01", 70d, "z6"); Set<String> zrange = jedis.zrange("zset01", 0, -1);for (String e : zrange) {System.out.println(e);}

 

2.   Redis_Jedis_实例

2.1.  完成一个手机验证码功能

要求:

1、输入手机号,点击发送后随机生成6位数字码,2分钟有效

2、输入验证码,点击验证,返回成功或失败

3、每个手机号每天只能输入3次

                           

 

 

3.   Redis与Spring Boot整合

Spring Boot整合Redis非常简单,只需要按如下步骤整合即可

3.1.   整合步骤

1、在pom.xml文件中引入redis相关依赖

 

<!-- redis -->
  <dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
  
  <!-- spring2.X集成redis所需common-pool2-->
  <dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-pool2</artifactId>
  <version>2.6.0</version>
  </dependency>
 

 

2、application.properties配置redis配置

 

 

#Redis服务器地址  spring.redis.host=192.168.140.136  #Redis服务器连接端口  spring.redis.port=6379  #Redis数据库索引(默认为0)  spring.redis.database= 0  #连接超时时间(毫秒)  spring.redis.timeout=1800000  #连接池最大连接数(使用负值表示没有限制)  spring.redis.lettuce.pool.max-active=20  #最大阻塞等待时间(负数表示没限制)  spring.redis.lettuce.pool.max-wait=-1  #连接池中的最大空闲连接  spring.redis.lettuce.pool.max-idle=5  #连接池中的最小空闲连接  spring.redis.lettuce.pool.min-idle=0

 

 

3、添加redis配置类

 

@EnableCaching  @Configuration  public class RedisConfig extends CachingConfigurerSupport  {        @Bean      public  RedisTemplate<String, Object>  redisTemplate(RedisConnectionFactory factory) {          RedisTemplate<String,  Object> template = new RedisTemplate<>();          RedisSerializer<String>  redisSerializer = new StringRedisSerializer();          Jackson2JsonRedisSerializer  jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);          ObjectMapper om = new ObjectMapper();           om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);           om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);           jackson2JsonRedisSerializer.setObjectMapper(om);           template.setConnectionFactory(factory);  //key序列化方式          template.setKeySerializer(redisSerializer);  //value序列化          template.setValueSerializer(jackson2JsonRedisSerializer);  //value hashmap序列化          template.setHashValueSerializer(jackson2JsonRedisSerializer);          return  template;      }        @Bean      public  CacheManager  cacheManager(RedisConnectionFactory factory) {          RedisSerializer<String>  redisSerializer = new StringRedisSerializer();          Jackson2JsonRedisSerializer  jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);  //解决查询缓存转换异常的问题          ObjectMapper om = new ObjectMapper();           om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);          om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);           jackson2JsonRedisSerializer.setObjectMapper(om);  // 配置序列化(解决乱码的问题),过期时间600秒          RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()                  .entryTtl(Duration.ofSeconds(600))                   .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))                   .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))                   .disableCachingNullValues();          RedisCacheManager cacheManager  = RedisCacheManager.builder(factory)                  .cacheDefaults(config)                  .build();          return  cacheManager;      }  }

 

 

4、测试一下

RedisTestController中添加测试方法

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
@RestController  @RequestMapping("/redisTest")  public class RedisTestController  {      @Autowired      private  RedisTemplate redisTemplate;
      @GetMapping      public  String testRedis() {          //设置值到redis          redisTemplate.opsForValue().set("name","lucy");          //从redis获取值          String name = (String)redisTemplate.opsForValue().get("name");          return  name;      }  }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆埙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值