廉政网站管理制度建设,网络直播公司,企业网站建设费怎么入账,网站计算器代码目录
一、Jedis
二、Lettuce
三、一个Demo Java集成Redis主要有3个方案#xff1a;Jedis、Lettuce和Redisson。
其中#xff0c;Jedis、Lettuce侧重于单例Redis#xff0c;而Redisson侧重于分布式服务。
项目资源在文末 一、Jedis
1、创建SpringBoot项目 2、引入依赖 …目录
一、Jedis
二、Lettuce
三、一个Demo Java集成Redis主要有3个方案Jedis、Lettuce和Redisson。
其中Jedis、Lettuce侧重于单例Redis而Redisson侧重于分布式服务。
项目资源在文末 一、Jedis
1、创建SpringBoot项目 2、引入依赖
其中jedis是所需要的依赖lombok是为了方便后续配置 dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency 3、 配置yml #redis配置--jedis版
jedis:pool:#redis服务器的IPhost: localhost#redis服务器的Portport: 6379#数据库密码password:#连接超时时间timeout: 7200#最大活动对象数maxTotall: 100#最大能够保持idel状态的对象数maxIdle: 100#最小能够保持idel状态的对象数minIdle: 50#当池内没有返回对象时最大等待时间maxWaitMillis: 10000#当调用borrow Object方法时是否进行有效性检查testOnBorrow: true#当调用return Object方法时是否进行有效性检查testOnReturn: true#“空闲链接”检测线程检测的周期毫秒数。如果为负值表示不运行“检测线程”。默认为-1.timeBetweenEvictionRunsMillis: 30000#向调用者输出“链接”对象时是否检测它的空闲超时testWhileIdle: true# 对于“空闲链接”检测线程而言每次检测的链接资源的个数。默认为3.numTestsPerEvictionRun: 50 4、导入配置文件和加载配置类
导入配置文件JedisProperties导入yml文件内容
加载配置类JedisConfig加载JedisProperties内容
①JedisProperties package com.example.redis_java.config;import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;Component
ConfigurationProperties(prefix jedis.pool)
Getter
Setter
public class JedisProperties {private int maxTotall;private int maxIdle;private int minIdle;private int maxWaitMillis;private boolean testOnBorrow;private boolean testOnReturn;private int timeBetweenEvictionRunsMillis;private boolean testWhileIdle;private int numTestsPerEvictionRun;private String host;private String password;private int port;private int timeout;
} ②JedisConfig
说明如果SpringBoot是2.x版本JedisConfig请使用注释掉的两行代码而不是它们对应的上面的代码 package com.example.redis_java.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;import java.time.Duration;Configuration
public class JedisConfig {/*** jedis连接池** param jedisProperties* return*/Beanpublic JedisPool jedisPool(JedisProperties jedisProperties) {JedisPoolConfig config new JedisPoolConfig();config.setMaxTotal(jedisProperties.getMaxTotall());config.setMaxIdle(jedisProperties.getMaxIdle());config.setMinIdle(jedisProperties.getMinIdle());config.setMaxWait(Duration.ofMillis(jedisProperties.getMaxWaitMillis()));// config.setMaxWaitMillis(jedisProperties.getMaxWaitMillis());config.setTestOnBorrow(jedisProperties.isTestOnBorrow());config.setTestOnReturn(jedisProperties.isTestOnReturn());config.setTimeBetweenEvictionRuns(Duration.ofMillis(jedisProperties.getTimeBetweenEvictionRunsMillis()));// config.setTimeBetweenEvictionRunsMillis(jedisProperties.getTimeBetweenEvictionRunsMillis());config.setTestWhileIdle(jedisProperties.isTestWhileIdle());config.setNumTestsPerEvictionRun(jedisProperties.getNumTestsPerEvictionRun());if (StringUtils.hasText(jedisProperties.getPassword())) {return new JedisPool(config, jedisProperties.getHost(), jedisProperties.getPort(), jedisProperties.getTimeout(), jedisProperties.getPassword());}return new JedisPool(config, jedisProperties.getHost(), jedisProperties.getPort(), jedisProperties.getTimeout());}
} ③项目结构 5、测试
①测试前 ②测试类
package com.example.redis_java;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;SpringBootTest
public class JedisTest {Autowiredprivate JedisPool jedisPool;Testpublic void testConnection() {System.out.println(jedisPool);Jedis jedis jedisPool.getResource();jedis.set(name, Trxcx);System.out.println(jedis.get(name));jedis.sadd(mySet, a, b, d);System.out.println(jedis.smembers(mySet));// jedis的方法名就是redis的命令jedis.close();}
}
③项目结构 ④运行测试类 ⑤测试后 说明jedis的方法名就是redis的命令。如sadd、smembers。 二、Lettuce
Lettuce配置比较简单这里直接在上一个项目的基础上进行配置新项目配置Lettuce方法一致。
1、引入依赖 !--Lettuce依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency 2、配置yml
如果有密码设置对应的密码。
spring:redis:host: 127.0.0.1port: 6379# password: admin 3、测试
①编写测试类
package com.example.redis_java;import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;SpringBootTest
public class LettureTest {Autowiredprivate StringRedisTemplate template;// 约定// 操作redis的key是字符串// value是字符串类型或字符串类型元素Testpublic void testRedis() {template.opsForValue().set(name, Trxcx);System.out.println(template.opsForValue().get(name));template.opsForSet().add(Games,RDR2,CS2,ACOd);System.out.println(template.opsForSet().members(Games));// 操作string// template.opsForValue().xx();// 操作hash// template.opsForHash().xx();// 操作list// template.opsForList().xx();// 操作set// template.opsForSet().xx();// 操作zset// template.opsForZSet().xx();// spring-data-redis方法是redis命令全称// template.opsForList().rightPush() //rpush// 全局命令在template类上// template.keys(*);}
}
②项目结构 ③运行测试类 4、说明
①Lettuce使用StringRedisTemplate的一个对象完成对Redis的操作不存在像Jedis那样获取Redis资源使用完再关闭的情况。
②Lettuce通过opsForxxx完成对不同value类型的操作例如
opsForValue()是操作String类型的opsForHash()是操作Hash类型的opsForList()是操作List类型的opsForSet()是操作Set类型的opsForZSet()是操作Zset类型的
③Lettuce的方法名是Redis命令的全称
例如template.opsForList().rightPush()对应Redis中的rpush命令
④全局命令作用在StringRedisTemplate对象上
例如template.keys(*); 三、一个Demo
这个demo实现了每次刷新或者访问网页时阅读量1的效果。 启动SpringBoot项目后访问http://localhost:8080/detail.html每次刷新页面阅读量1。 项目资源链接
1、【免费】Redis-Java.zip资源-CSDN文库
2、【免费】RedisDemo.zip资源-CSDN文库