赞
踩
默认有三种方式连接redis.
第一种:jedis—传统的项目–ssm
第二种:lettuce:---->刚出现没有多久就被springboot整合进来。
第三种:springboot连接redis
(1)引入jedis依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
(2)编写相关的代码
@Test public void test01(){ // Jedis(String host, int port) Jedis jedis = new Jedis("192.168.80.128",6379); // 该类包含很多对redis操作的方法,这些方法和原来我们使用的命令一样 Set<String> keys = jedis.keys("*"); System.out.println(keys); // 对string数据类型操作 jedis.set("k1", "坤"); String k1 = jedis.get("k1"); System.out.println("k1: " + k1); jedis.setex("k2",16,"有很多"); String k2 = jedis.get("k2"); System.out.println("k2: " + k2); // 对hash数据类型操作 Map<String, String> map = new HashMap<>(); map.put("name","座右铭"); map.put("age","18"); map.put("hobby","优惠点"); jedis.hset("k3",map); Map<String, String> k3 = jedis.hgetAll("k3"); System.out.println(k3); // 对list类型数据操作 jedis.lpush("k4","座右铭","优惠点","老油条","屏幕膜","万美元"); List<String> k4 = jedis.lrange("k4", 0, -1); System.out.println(k4); jedis.close(); }
每次使用jedis对象时 都需要自己创建,当使用完后,需要关闭该对象。===>jedis中也存在连接池.
@Test public void testPool(){ //连接池的配置信息 JedisPoolConfig config=new JedisPoolConfig(); config.setMaxTotal(10);//最多的连接个数 config.setMaxIdle(10); //最多空闲的连接个数 config.setMinIdle(2); //最小的空闲个数 config.setTestOnBorrow(true);//在获取连接对象时是否验证该连接对象的连通性 //创建连接池对象 JedisPool jedisPool=new JedisPool(config,"192.168.80.128",6379); Jedis jedis = jedisPool.getResource(); //清空当前库 jedis.flushDB(); String set = jedis.set("k1", "v1"); String k1 = jedis.get("k1"); System.out.println(k1); jedis.close();//归还连接池 }
@Test public void test03(){ //连接池的配置信息 JedisPoolConfig config=new JedisPoolConfig(); config.setMaxTotal(100);//最多的连接个数 config.setMaxIdle(10); //最多空闲的连接个数 config.setMinIdle(2); //最小的空闲个数 config.setTestOnBorrow(true);//在获取连接对象时是否验证该连接对象的连通性 //创建连接池对象 JedisPool jedisPool=new JedisPool(config,"192.168.80.128",6379); long start = System.currentTimeMillis(); for(int i=0;i<10000;i++){ Jedis jedis = jedisPool.getResource(); String ping = jedis.ping(); jedis.close(); } long end = System.currentTimeMillis(); System.out.println("耗时:"+(end-start)); } @Test public void test02(){ long start = System.currentTimeMillis(); //Jedis(String host, int port) for(int i=0;i<10000;i++){ Jedis jedis=new Jedis("192.168.80.128",6379); String ping = jedis.ping(); jedis.close(); } long end = System.currentTimeMillis(); System.out.println("耗时:"+(end-start)); }
springboot在整合redis时提高两个模板类,StringRedisTemplate和RedisTemplate.以后对redis的操作都在该模板类中。StringRedisTemplate是RedisTemplate的子类。
<!--redis相关的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
修改配置文件
#redis的配置信息
spring.data.redis.host=192.168.80.128
spring.data.redis.port=6379
#最多获取数
spring.data.redis.lettuce.pool.max-active=8
spring.data.redis.lettuce.pool.max-wait=-1ms
spring.data.redis.lettuce.po
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。