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

91大神网站建设培训心得体会1500字

91大神网站建设,培训心得体会1500字,网站推广软件预期效果,网站备案要网管做还是做网站的做Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。 使用Redis Redis是一个开源的使用ANSI C语言编写、支持网络、可…

Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, Solr和Cassandra。

使用Redis

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。

  • Redis官网
  • Redis中文社区

引入依赖

Spring Boot提供的数据访问框架Spring Data Redis基于Jedis。可以通过引入spring-boot-starter-redis来配置依赖关系。

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
</dependency>

参数配置

按照惯例在application.properties中加入Redis服务端的相关配置,具体说明如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=0

其中spring.redis.database的配置通常使用0即可,Redis在配置的时候可以设置数据库数量,默认为16,可以理解为数据库的schema

测试访问

通过编写测试用例,举例说明如何访问Redis。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class ApplicationTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Test
public void test() throws Exception {
// 保存字符串
stringRedisTemplate.opsForValue().set("aaa", "111");
Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));
}
}

通过上面这段极为简单的测试案例演示了如何通过自动配置的StringRedisTemplate对象进行Redis的读写操作,该对象从命名中就可注意到支持的是String类型。如果有使用过spring-data-redis的开发者一定熟悉RedisTemplate<K, V>接口,StringRedisTemplate就相当于RedisTemplate<String, String>的实现。

除了String类型,实战中我们还经常会在Redis中存储对象,这时候我们就会想是否可以使用类似RedisTemplate<String, User>来初始化并进行操作。但是Spring Boot并支持直接使用,需要我们自己实现RedisSerializer<T>接口来对传入对象进行序列化和反序列化,下面我们通过一个实例来完成对象的读写操作。

  • 创建要存储的对象:User
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class User implements Serializable {
private static final long serialVersionUID = -1L;
private String username;
private Integer age;
public User(String username, Integer age) {
this.username = username;
this.age = age;
}
// 省略getter和setter
}
  • 实现对象的序列化接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class RedisObjectSerializer implements RedisSerializer<Object> {
private Converter<Object, byte[]> serializer = new SerializingConverter();
private Converter<byte[], Object> deserializer = new DeserializingConverter();
static final byte[] EMPTY_ARRAY = new byte[0];
public Object deserialize(byte[] bytes) {
if (isEmpty(bytes)) {
return null;
}
try {
return deserializer.convert(bytes);
} catch (Exception ex) {
throw new SerializationException("Cannot deserialize", ex);
}
}
public byte[] serialize(Object object) {
if (object == null) {
return EMPTY_ARRAY;
}
try {
return serializer.convert(object);
} catch (Exception ex) {
return EMPTY_ARRAY;
}
}
private boolean isEmpty(byte[] data) {
return (data == null || data.length == 0);
}
}
  • 配置针对User的RedisTemplate实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Configuration
public class RedisConfig {
@Bean
JedisConnectionFactory jedisConnectionFactory() {
return new JedisConnectionFactory();
}
@Bean
public RedisTemplate<String, User> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, User> template = new RedisTemplate<String, User>();
template.setConnectionFactory(jedisConnectionFactory());
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new RedisObjectSerializer());
return template;
}
}
  • 完成了配置工作后,编写测试用例实验效果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(Application.class)
public class ApplicationTests {
@Autowired
private RedisTemplate<String, User> redisTemplate;
@Test
public void test() throws Exception {
// 保存对象
User user = new User("超人", 20);
redisTemplate.opsForValue().set(user.getUsername(), user);
user = new User("蝙蝠侠", 30);
redisTemplate.opsForValue().set(user.getUsername(), user);
user = new User("蜘蛛侠", 40);
redisTemplate.opsForValue().set(user.getUsername(), user);
Assert.assertEquals(20, redisTemplate.opsForValue().get("超人").getAge().longValue());
Assert.assertEquals(30, redisTemplate.opsForValue().get("蝙蝠侠").getAge().longValue());
Assert.assertEquals(40, redisTemplate.opsForValue().get("蜘蛛侠").getAge().longValue());
}
}

当然spring-data-redis中提供的数据操作远不止这些,本文仅作为在Spring Boot中使用redis时的配置参考,更多对于redis的操作使用,请参考Spring-data-redis Reference。

http://www.lbrq.cn/news/2522197.html

相关文章:

  • 开源wordpress主题seo教程之关键词是什么
  • 优秀网站网址seo是什么服务器
  • 建设网站用户名是什么最新新闻摘抄
  • 平面设计师长逛的网站有哪些百度推广费
  • 外国一些做环保袋的网站全网营销老婆第一人
  • 厦门网站开发公司电话牡丹江网站seo
  • 网站建设 广西分析影响网站排名的因素
  • 中国建设银行泗水支行的网站公司网络推广该怎么做
  • 宁乡县建设局网站免费建网站的步骤
  • 辽宁响应式网站建设推荐2023年时政热点事件
  • 多语种网站建设开发北京百度关键词推广
  • 自己电脑做电影网站青岛官网seo方法
  • 怎么营销一个产品seo流量是什么意思
  • 怎样开通微商城平台seo排名影响因素主要有
  • iis做网站跳转seow
  • wordpress 分词 tag郑州网站seo
  • 专业做网文的网站最近发生的新闻
  • 100块钱开发网站seo的作用是什么
  • 石家庄网站seo顾问青岛快速排名优化
  • 公司做网站关键词排名软件
  • 黄岛网站建设价格今日新闻最新
  • nh网站建设杭州正规引流推广公司
  • 国内做网站网站浏览器
  • 图标网站导航制作怎么做seo优化包括哪些内容
  • 全球网站排名济南网络推广网络营销
  • 商丘幼儿园网站建设策划方案自己怎样在百度上做推广
  • 公司是做小程序还是做网站厦门关键词优化网站
  • 代做一个网站多少钱淘宝流量平台
  • 下载网页制作设计编辑器软件百度app优化
  • 容桂网站建设找顺的整站优化seo平台
  • RHCA学习概述
  • 开发避坑短篇(9):解决升级Vue3后slot attributes废弃警告
  • [硬件电路-106]:模拟电路 - 电路为什么会出现不同的频率特性?元件频率依赖性、信号传输路径、电路拓扑结构、外部因素
  • 【机器学习】机器学习新手入门概述
  • 如何将word里面的英文引号改为中文引号?如何将Times New Roman字体的符号改为宋体?
  • YOLO-01目标检测基础