深圳网站建设培训,凡客建站官网登录,网站的字体颜色,2022年免费云服务器我是一个java开发者#xff0c;我的文章#xff0c;没有华丽的言辞#xff0c;没有666的版式#xff0c;这些都是我自己工作中用到的解决方案#xff0c;很多都是直接粘贴的源码#xff0c;在这里与君分享。如果喜欢这里文章可以关注我#xff0c;我回继续发的#xff…我是一个java开发者我的文章没有华丽的言辞没有666的版式这些都是我自己工作中用到的解决方案很多都是直接粘贴的源码在这里与君分享。如果喜欢这里文章可以关注我我回继续发的谢谢你。我们在使用springboot搭建微服务的时候在很多时候还是需要redis的高速缓存来缓存一些数据存储一些高频率访问的数据如果直接使用redis的话又比较麻烦在这里我们使用jedis来实现redis缓存来达到高效缓存的目的接下来让我们一起来使用jedis来实现redis缓存 1.在pom.xml文件中添加依赖 redis.clients jedis 2.8.22. 在springboot的配置文件中加入redis的配置信息#redis jedis配置# Redis数据库索引(默认为0)spring.redis.database0# Redis服务器地址spring.redis.host10.100.140.84# Redis服务器连接端口spring.redis.port6379# Redis服务器连接密码(默认为空)#spring.redis.password# 连接池最大连接数(使用负值表示没有限制)spring.redis.pool.max-active200# 连接池最大阻塞等待时间(使用负值表示没有限制)spring.redis.pool.max-wait-1# 连接池中的最大空闲连接spring.redis.pool.max-idle8# 连接池中的最小空闲连接spring.redis.pool.min-idle0# 连接超时时间(毫秒)spring.redis.timeout0#spring-session 使用spring.session.store-typenone3.创建jedis配置文件配置文件的作用是在项目启动的时候将jedis注入接着我们就可以在其他类中获取到JedisPool类的信息Configurationpublic class JedisConfig extends CachingConfigurerSupport{ private Logger logger LoggerFactory.getLogger(JedisConfig.class); /** * SpringSession 需要注意的就是redis需要2.8以上版本然后开启事件通知在redis配置文件里面加上 * notify-keyspace-events Ex * Keyspace notifications功能默认是关闭的(默认地Keyspace 时间通知功能是禁用的因为它或多或少会使用一些CPU的资源)。 * 或是使用如下命令 * redis-cli config set notify-keyspace-events Egx * 如果你的Redis不是你自己维护的比如你是使用阿里云的Redis数据库你不能够更改它的配置那么可以使用如下方法在applicationContext.xml中配置 * * return */ Value(${spring.redis.host}) private String host; Value(${spring.redis.port}) private int port; Value(${spring.redis.timeout}) private int timeout; Value(${spring.redis.pool.max-active}) private int maxActive; Value(${spring.redis.pool.max-idle}) private int maxIdle; Value(${spring.redis.pool.min-idle}) private int minIdle; Value(${spring.redis.pool.max-wait}) private long maxWaitMillis; Bean public JedisPool redisPoolFactory(){ JedisPoolConfig jedisPoolConfig new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); jedisPoolConfig.setMaxTotal(maxActive); jedisPoolConfig.setMinIdle(minIdle); JedisPool jedisPool new JedisPool(jedisPoolConfig,host,port,timeout,null); logger.info(JedisPool注入成功); logger.info(redis地址 host : port); return jedisPool; }}接下来我们启动项目gogogoJedis注入成功了 然后我们可以定义一个工具类用于对redis进行各种操作这里我们通过Autowired将JedisPool注入到工具类中其他两个是命名、序列化的类这里我们列举一下平常最常用的几个方法//给某个key设值public void set(String key, Object value) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); byte[] valueBytes serializer.serializeValue(value); client.set(keyBytes, valueBytes); } finally { returnJedis(client); } }//根据key获取value public Object get(String key) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); byte[] valueBytes client.get(keyBytes); return serializer.deserializeValue(valueBytes); } finally { returnJedis(client); } }//根据键值获取value public Object hashGet(String key, String field) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); byte[] fieldBytes serializer.serializeKey(field); byte[] valueBytes client.hget(keyBytes, fieldBytes); return serializer.deserializeValue(valueBytes); } finally { returnJedis(client); } } public void hashSet(String key, String field, Object value) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); byte[] fieldBytes serializer.serializeKey(field); byte[] valueBytes serializer.serializeValue(value); client.hset(keyBytes, fieldBytes, valueBytes); } finally { returnJedis(client); } }public Map hashAllGet(String key) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); Map map client.hgetAll(keyBytes); Map valueMap Maps.newHashMap(); Set valueSet map.entrySet(); for (Map.Entry entry : valueSet) { valueMap.put(serializer.deserializeKey(entry.getKey()), serializer.deserializeValue(entry.getValue())); } return valueMap; } finally { returnJedis(client); } }//判断key是否存在 public boolean existKey(String key) { Jedis client getJedis(); try { byte[] keyBytes serializer.serializeKey(keyNamingPolicy.getKeyName(key)); return client.exists(keyBytes); } finally { returnJedis(client); } }在该项目中我们发送短信验证码后会将验证码存在redis中去然后校验的时候会判断用户输入的验证码和缓存中的验证码是否一致达到目的