当前位置: 首页 > news >正文

上海网站建设 百家号短视频seo系统

上海网站建设 百家号,短视频seo系统,网站做弹幕广告,小程序设计案例文章目录Java 整合 Redis一、Jedis二、Spring-Data-RedisJava 整合 Redis Redis 在项目中我们主要用来做缓存,就像我们用 MySQL 做持久层数据一样。Redis 的客户端有两种实现方式: 一是直接调用 Jedis 来实现,类似于 Java 使用 JDBC 操作数…

文章目录

    • Java 整合 Redis
      • 一、Jedis
      • 二、Spring-Data-Redis

Java 整合 Redis

Redis 在项目中我们主要用来做缓存,就像我们用 MySQL 做持久层数据一样。Redis 的客户端有两种实现方式:

一是直接调用 Jedis 来实现,类似于 Java 使用 JDBC 操作数据库一样。

二是使用 Spring-Data-Redis,通过 Spring 的封装来调用。

一、Jedis

Jedis 是 Redis 官方推荐的 Java 连接开发工具,Jedis 是 Redis 的 Java 版本的客户端实现。

Java 通过 Jedis 来操作 Redis 服务,类似于 Java 通过 JDBC 技术来操作 MySQL 数据库。

通过前面 Redis 的常见数据类型的命令操作,可以很容易地使用 Jedis,因为大多数方法名与对应的命令基本一致。Redis 的常见数据类型的命令可以参考上一篇文章 Redis常见的数据类型命令

Jedis 的简单使用如下:

首先引入 Jedis 的 maven 依赖:

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

下面是测试代码:

public class JedisTest {Jedis jedis;/*** 初始化Jedis实例*/@Beforepublic void init() {//指定Redis服务器的IP地址和端口号jedis = new Jedis("192.168.43.100", 6379);}@Testpublic void redisJedisTest() {//操作字符串//方法名与操作原生redis的命令一致jedis.set("dec", "hello");String dec = jedis.get("dec");System.out.println(dec);//操作listjedis.lpush("data", "v1", "v2", "v3");jedis.rpush("data", "v4", "v5", "v6");List<String> data = jedis.lrange("data", 0, -1);for (String s : data) {System.out.print(s + " ");}System.out.println();//操作hashHashMap<String, String> hashMap = new HashMap<>();hashMap.put("id", "1");hashMap.put("name", "huhai");hashMap.put("age", "24");jedis.hset("object", hashMap);Map<String, String> object = jedis.hgetAll("object");object.forEach((key, value) -> System.out.print(key + "=" + value + " "));}/*** 关闭Jedis连接*/@Afterpublic void close() {jedis.close();}
}

终端输出如下:

hello
v3 v2 v1 v4 v5 v6 
name=huhai age=24 id=1

也可以使用 JedisPool 来进行操作:

//声明Linux服务器IP地址
String host = "192.168.43.100";
//声明Redis端口号
int port = Protocol.DEFAULT_PORT;
//创建连接池对象
JedisPool jedisPool = new JedisPool(host, port);
//获取Jedis对象连接Redis
Jedis jedis = jedisPool.getResource();
//执行具体操作
String ping = jedis.ping();
System.out.println(ping);//pong
//关闭连接
jedisPool.close();

二、Spring-Data-Redis

Spring-Data-Redis 是 Spring 大家族的一部分,通过简单的配置访问 Redis 服务,对 Redis 底层开发包(Jedis,JRedis,RJC)进行了高度封装,RedisTemplate提供了 Redis 的各种操作、异常处理以及序列化,支持发布订阅。

RedisTemplate

Spring 封装了 RedisTemplate 对象来进行对 Redis 的各种操作,它支持所有的 Redis 原生的 API。

org.springframework.data.redis.core.RedisTemplate<K, V>

RedisTemplate 中定义了对 5 种基本数据结构的操作

redisTemplate.opsForValue();//操作String字符串
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForZSet();//操作有序set

StringRedisTemplate 和 RedisTemplate

  • 两者的关系是 StringRedisTemplate 继承 RedisTemplate。

  • 两者的数据是不共通的;也就是说 StringRedisTemplate 只能管理 StringRedisTemplate 里面的数据,RedisTemplate 只能管理 RedisTemplate 中的数据。

  • SDR 默认采用的序列化策略有两种,一种是 String 的序列化策略,一种是 JDK 的序列化策略。

  • StringRedisTemplate 默认采用的是 String 的序列化策略,保存的 key 和 value 都是采用此策略序列化保存的。

  • RedisTemplate 默认采用的是 JDK 的序列化策略,保存的 key 和 value 都是采用此策略序列化保存的。

使用 Spring-Data-Redis 的 demo 如下:

1、首先引入依赖:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><!-- lombok依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
</dependencies>

2、添加配置文件,进行 Redis 的一些配置

spring:redis:#redis服务器连接地址host: 192.168.43.100#端口号port: 6379#连接超时时间(毫秒)timeout: 10000#使用的redis库database: 0jedis:pool:#连接池最大连接数max-active: 10#连接池中的最大空闲连接max-idle: 10#连接池中的最小空闲连接min-idle: 2#连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: 10000

3、添加 Redis 配置类,定义序列化机制

/*** Description: Redis 基础配置类*/
public class BaseRedisConfig {@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory, RedisSerializer<Object> redisSerializer) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(redisConnectionFactory);redisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setValueSerializer(redisSerializer);redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(redisSerializer);redisTemplate.afterPropertiesSet();return redisTemplate;}@Beanpublic RedisSerializer<Object> redisSerializer() {//创建JSON序列化器Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);ObjectMapper objectMapper = new ObjectMapper();objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);//必须设置,否则无法将JSON转化为对象,会转化成Map类型objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);serializer.setObjectMapper(objectMapper);return serializer;}@Beanpublic IRedisService redisService(RedisTemplate<String, Object> redisTemplate) {return new RedisServiceImpl(redisTemplate);}
}
/*** Description: Redis配置类*/
@Configuration
public class RedisConfig extends BaseRedisConfig{
}

4、创建 IRedisService 接口与 RedisServiceImpl 实现类

只写了一些基本使用方法,如有需要可以继续添加,在其他类里面注入即可使用~

/*** Description: Redis操作Service*/
public interface IRedisService {/*** 保存属性** @param key   key* @param value value* @param time  超时时间(秒)*/void set(String key, Object value, long time);/*** 保存属性,无过期时间** @param key   key* @param value value*/void set(String key, Object value);/*** 获取属性** @param key key* @return value*/Object get(String key);/*** 设置过期时间** @param key  key* @param time 超时时间(秒)* @return 是否设置成功*/Boolean expire(String key, long time);/*** 删除key* @param key  key* @return 是否设置成功*/Boolean delete(String key);}
/*** Description: Redis操作实现类*/
@RequiredArgsConstructor
@Service
public class RedisServiceImpl implements IRedisService {private final RedisTemplate<String, Object> redisTemplate;@Overridepublic void set(String key, Object value, long time) {redisTemplate.opsForValue().set(key, value, time);}@Overridepublic void set(String key, Object value) {redisTemplate.opsForValue().set(key, value);}@Overridepublic Object get(String key) {return redisTemplate.opsForValue().get(key);}@Overridepublic Boolean expire(String key, long time) {return redisTemplate.expire(key, time, TimeUnit.SECONDS);}@Overridepublic Boolean delete(String key) {return redisTemplate.delete(key);}
}

5、进行 Junit 测试

@SpringBootTest
class SpringDataRedisDemoApplicationTests {@Resourceprivate IRedisService redisService;@Testvoid contextLoads() {redisService.set("name", "xiaobai");System.out.println(redisService.get("name"));//xiaobai}
}

只展示了 Redis 的字符串的一些常用操作,如果有其他操作,可以在 IRedisService 中添加对应方法,然后在 RedisServiceImpl 中实现之后,在需要的地方进行调用。

http://www.dinnco.com/news/33725.html

相关文章:

  • 济南网站建设河南seo外包
  • 做网站租服务器搜索引擎优化的方法有哪些?
  • 管理公司网站建设关于普通话的手抄报
  • 南通网站建设找哪家好百度搜索的优势
  • 设计软件需要多少钱谷歌推广优化
  • 人工优化网站怎么做百度地址如何设置门店地址
  • 企业网站托管方案内容具体有哪些如何优化标题关键词
  • 贵州省两学一做网站今天的新闻 联播最新消息
  • 西宁做腋臭哪里北大DE网站快速排名服务平台
  • 做架构图的网站网站快速排名公司
  • 在国外网站上买机票怎样做财务免费下载百度到桌面
  • 电影网站html代码抖音代运营公司
  • 如何查询网站建设时间seo推广教程seo高级教程
  • 提供营销型网站余姚关键词优化公司
  • 建网站安全百度推广关键词排名在哪看
  • wordpress特定文章小工具seo优化网站排名
  • 做网站如何收费如何做运营推广
  • 网站推广平台郑州网络营销公司哪家好
  • 接单做一个网站多少钱石家庄seo推广公司
  • 中国疫情防控措施免费网站seo诊断
  • 自己做网站如何销售企业营销型网站有哪些
  • 爱客crm客户管理系统seo技术蜘蛛屯
  • 网站上线详细步骤seo招聘要求
  • php游戏网站建设谷歌搜索引擎google
  • 新乡做网站推广2022年新闻摘抄十条
  • 做网站爬闪鄂尔多斯seo
  • 怎样在凡科网站做网页如何让自己的网站排名靠前
  • 有移动端网站 怎么做app最新域名解析
  • 做网站背景图怎么插什么软件可以免费引流
  • 长沙网站建设服务公司淘宝的17种免费推广方法