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

做制作网站找啥工作杭州seo托管公司推荐

做制作网站找啥工作,杭州seo托管公司推荐,温岭做网站,wordpress手机视频主题一、概述 大多数用户可能会使用RedisTemplate及其相应的包org.springframework.data.redis.core或其反应式变体ReactiveRedisTemplate。由于其丰富的功能集,该模板实际上是Redis模块的中心类。该模板为Redis交互提供了高级抽象。虽然[Reactive]RedisConnection提供…

一、概述

大多数用户可能会使用RedisTemplate及其相应的包org.springframework.data.redis.core或其反应式变体ReactiveRedisTemplate。由于其丰富的功能集,该模板实际上是Redis模块的中心类。该模板为Redis交互提供了高级抽象。虽然[Reactive]RedisConnection提供了接受和返回二进制值(字节数组)的低级方法,但模板负责序列化和连接管理,使用户无需处理此类细节。

RedisTemplate类实现RedisOperations接口,其反应变量ReactiveRedisTemplate实现ReactiveEdisOperations。

此外,该模板还提供了操作视图(遵循Redis命令参考中的分组),这些视图提供了丰富的通用接口,用于处理特定类型或特定键(通过KeyBound接口),如下表所述:

操作视图:

InterfaceDescription

Key Type Operations

GeoOperations

Redis geospatial operations, such as GEOADDGEORADIUS,…​

HashOperations

Redis hash operations

HyperLogLogOperations

Redis HyperLogLog operations, such as PFADDPFCOUNT,…​

ListOperations

Redis list operations

SetOperations

Redis set operations

ValueOperations

Redis string (or value) operations

ZSetOperations

Redis zset (or sorted set) operations

Key Bound Operations

BoundGeoOperations

Redis key bound geospatial operations

BoundHashOperations

Redis hash key bound operations

BoundKeyOperations

Redis key bound operations

BoundListOperations

Redis list key bound operations

BoundSetOperations

Redis set key bound operations

BoundValueOperations

Redis string (or value) key bound operations

BoundZSetOperations

Redis zset (or sorted set) key bound operations

配置后,模板是线程安全的,可以跨多个实例重用。

RedisTemplate对其大多数操作使用基于Java的序列化程序。这意味着模板写入或读取的任何对象都将通过Java序列化和反序列化。

您可以在模板上更改序列化机制,Redis模块提供了几种实现,可在org.springframework.data.Redis.serializer包中获得。有关详细信息,请参阅序列化程序。您还可以通过将enableDefaultSerializer属性设置为false,将任何序列化程序设置为null,并将RedisTemplate与原始字节数组一起使用。请注意,模板要求所有键都不为null。然而,只要底层序列化程序接受它们,值就可以为null。阅读每个序列化程序的Javadoc以了解更多信息。

对于需要特定模板视图的情况,请将视图声明为依赖项,然后注入模板。容器自动执行转换,消除opsFor[X]调用,如下例所示:

配置模板API:

@Configuration
class MyConfig {@BeanLettuceConnectionFactory connectionFactory() {return new LettuceConnectionFactory();}@BeanRedisTemplate<String, String> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, String> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory);return template;}
}

 ‌LettuceConnectionFactory‌是Spring Data Redis中的一个类,用于创建和管理与Redis服务器的连接。它是一个连接工厂,负责创建和配置Redis连接,并提供与Redis服务器进行通信的方法

使用[Reactive]RedisTemplate将项目推送到列表:

public class Example {// inject the actual operations@Autowiredprivate RedisOperations<String, String> operations;// inject the template as ListOperations@Resource(name="redisTemplate")private ListOperations<String, String> listOps;public void addLink(String userId, URL url) {listOps.leftPush(userId, url.toExternalForm());}
}

二、围绕着字符串的操作

由于Redis中存储的键和值通常是java.lang.String,因此Redis模块为RedisConnection和RedisTemplate提供了两个扩展,分别是StringRedisConnectition(及其DefaultStringRedissConnection实现)和StringRedistTemplate,作为密集String操作的便捷一站式解决方案。除了绑定到String键之外,模板和连接还使用下面的StringRedisSerializer,这意味着存储的键和值是人类可读的(假设Redis和代码中使用相同的编码)。以下列表显示了一个示例:

@Configuration
class RedisConfiguration {@BeanLettuceConnectionFactory redisConnectionFactory() {return new LettuceConnectionFactory();}@BeanStringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {StringRedisTemplate template = new StringRedisTemplate();template.setConnectionFactory(redisConnectionFactory);return template;}
}
public class Example {@Autowiredprivate StringRedisTemplate redisTemplate;public void addLink(String userId, URL url) {redisTemplate.opsForList().leftPush(userId, url.toExternalForm());}
}

与其他Spring模板一样,RedisTemplate和StringRedisTemplet允许您通过RedisCallback接口直接与Redis对话。此功能为您提供了完全的控制,因为它直接与RedisConnection对话。请注意,当使用StringRedisTemplate时,回调接收StringRedissConnection的实例。下面的例子展示了如何使用RedisCallback接口:

public void useCallback() {redisOperations.execute(new RedisCallback<Object>() {public Object doInRedis(RedisConnection connection) throws DataAccessException {Long size = connection.dbSize();// Can cast to StringRedisConnection if using a StringRedisTemplate((StringRedisConnection)connection).set("key", "value");}});
}

三、Serializers

从框架的角度来看,Redis中存储的数据只是字节。虽然Redis本身支持各种类型,但在大多数情况下,这些类型是指数据的存储方式,而不是它所表示的内容。由用户决定是否将信息转换为字符串或任何其他对象。

在Spring Data中,用户(自定义)类型和原始数据之间的转换(反之亦然)由org.springframework.Data.Redis.serializer包中的Spring Data Redis处理。

此包包含两种类型的序列化程序,顾名思义,它们负责序列化过程:

  • 基于RedisSerializer的双向序列化程序。
  • 使用RedisElementReader和RedisElement Writer的元素读取器和写入器。

这些变体之间的主要区别是RedisSerializer主要序列化为byte[],而读取器和写入器使用ByteBuffer。
有多种实现(包括本文档中已经提到的两种):

  • JdkSerializationRedisSerializer,默认情况下用于RedisCache和RedisTemplate。
  • StringRedisSerializer。 

然而,可以通过Spring OXM支持使用OxmSerializer进行Object/XML映射,或者使用Jackson2JsonRedisSerializers或GenericJackson2-JsonRedissSerializer.以JSON格式存储数据。
请注意,存储格式不仅限于值。它可以用于键、值或哈希,没有任何限制。 

四、开发实例 

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:data:redis:host: Redis所在主机地址port: Redis对应端口号(默认6379)password: 密码lettuce:pool:max-active: 最大连接数max-wait: 等待时长max-idle: 最大空闲连接min-idle: 最小空闲连接数
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisconnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;@configuration
public class Redisconfig {@Beanpublic RedisTemplate<string, object> redisTemplate(RedisconnectionFactory connectionfactory) {RedisTemplate<string, object> template = new RedisTemplate<>();template.setconnectionFactory(connectionFactory);return template;}
}
@service
public class Userservice {@Autowiredprivate RedisTemplate<string, object> redisTemplate;public void saveUser(string userId, User user) {redisTemplate.opsForValue().set(userId, user);}public User getuser(string userId) {return (user) redisTemplate.opsForValue().get(userId);}public void deleteuser(string userId) {redisTemplate.delete(userId);}public void setuserwithExpiry(string userId, User user, long timeout) {redisTemplate.opsForValue().set(userId, user, timeout, TimeUnit.SECONDS);}
}

http://www.yuulin.com/news/219.html

相关文章:

  • 网络解决方案韶山百度seo
  • 长期大量手工活外发百度seo教程
  • 中国水电建设集团港航建设有限公司网站近10天的时事新闻
  • 建筑工程承包合同惠州seo推广外包
  • 阿里云备案要关网站吗宁波seo搜索平台推广专业
  • 模板免费网站昆明网络推广公司排名
  • 深圳域名服务器地址北京网站优化步骤
  • 深圳小程序app开发东莞seo整站优化
  • 建行信用卡网站网络推广方案书模板
  • 做产品类网站有哪些江苏百度推广代理商
  • wordpress页面不留边seo教程seo官网优化详细方法
  • 有没有做家纺类的网站深圳优化排名公司
  • 合肥网站建设开发电话站长工具查询官网
  • 做美女网站流量网站设计与制作毕业论文范文
  • 网站建设的方法有昆明网络推广
  • 佛山定制网站建设个人可以做推广的平台有哪些
  • 揭阳网站制作方案广西壮族自治区
  • 做网站需不需要服务器软文自动发布软件
  • 四川网站开发制作seo如何提高网站排名
  • 怎么做一个赚钱得网站外贸网站推广平台有哪些
  • 基于web的网站设计与实现下载百度app
  • 做企业画册网站有网络营销和网上销售的区别
  • 自己做的网站不备案行吗竞价排名的定义
  • 做日本外贸网站网站接广告
  • 怎么认证网站网站为什么要seo
  • 网站 项目 需求最全的搜索引擎
  • 阿里云企业网站怎么收费seo站长博客
  • 栾川住房和城乡建设委员会网站流量宝官网
  • 海外仓网站建设四川seo排名
  • 网站怎么做qq登录市场营销分析案例