学习使用云服务器

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云服务器ECS,u1 2核4GB 1个月
简介: 在学习一些框架的时候就需要用到云服务器,比如redis很多网上的教程都是在云服务器上搭建的,所以一个好的云服务器是必不可少的。

云服务器体验

市面上的云服务器种类很多,之前老师有让我们用过腾讯云服务器,后来在需要使用云服务器的时候网上的视频使用的是阿里云服务器,所以我就来体验了一下阿里云服务器。阿里云服务器对学生还是很友好的,有着一周的免费使用时间并且还可以续费使用。

阿里云服务器体验

阿里云服务器还是很稳定的,使用过程中并没有发现任何问题,当然也可能是因为我接触的不够多的原因。

学习体验

目前用云服务器学习了一下redis,但是对着教程一步一步操作还是很简单的,尤其是使用的是同一种服务器。

安装

  1. 先下载tar包
  2. 解压 tar -zxvf redis-6.2.5.tar.gz
  3. 下载C++环境 yum install gcc-c++
  4. 查看gcc版本 gcc -v
  5. 在redis目录下面 make
  6. 然后make install

常用命令

keys*//查看当前库中所有key

setkey yx//设置一个名字叫key的key值为yx

setnx key yx//设置一个名字叫key的key值为yx,只有当key不存在时才成功

mset k1 v1 k2 v2 k3 v3//设置多个key、value

msetnx//设置多个key、value任何一个key存在就都设置失败

setex age 20value //设置值的时候设置value

getset key yx//取值的时候再设置新值

lpush

rpush

lrange

lpop

rpop

rpoplpush

lindex

llen

get k1//得到key为k1的值

mget k1 k2 k3//得到k1、k2、k3的值

existskey//判断某个key是否存在

type key//查看key是什么类型

del key//删除指定的key数据

unlink key//根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作,慢慢删

expire key10 //为指定的key设置过期时间,单位是秒

ttl key //查看还有多少秒过期-1表示永不过期,-2表示已经过期

select1//选择数据库1,刚开始是数据库0

dbsize//查看当前数据库有多少个key

flushdb//清空当前库

flushall//通杀全部库

springboot整合

proporties配置

#Redis服务器地址

spring.redis.host=47.113.222.35

#Redis服务器连接端口

spring.redis.port=6379

#Redis数据库索引(默认为0)

spring.redis.database= 0

#连接超时时间(毫秒)

spring.redis.timeout=1800000

#连接池最大连接数(使用负值表示没有限制)

spring.redis.lettuce.pool.max-active=20

#最大阻塞等待时间(负数表示没限制)

spring.redis.lettuce.pool.max-wait=-1

#连接池中的最大空闲连接

spring.redis.lettuce.pool.max-idle=5

#连接池中的最小空闲连接

spring.redis.lettuce.pool.min-idle=0

配置类

@EnableCaching

@Configuration

publicclassRedisConfigextendsCachingConfigurerSupport {

   @Bean

   publicRedisTemplate<String, Object>redisTemplate(RedisConnectionFactoryfactory) {

       RedisTemplate<String, Object>template=newRedisTemplate<>();

       RedisSerializer<String>redisSerializer=newStringRedisSerializer();

       Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);

       ObjectMapperom=newObjectMapper();

       om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

       om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

       jackson2JsonRedisSerializer.setObjectMapper(om);

       template.setConnectionFactory(factory);

//key序列化方式

       template.setKeySerializer(redisSerializer);

//value序列化

       template.setValueSerializer(jackson2JsonRedisSerializer);

//value hashmap序列化

       template.setHashValueSerializer(jackson2JsonRedisSerializer);

       returntemplate;

 }

   @Bean

   publicCacheManagercacheManager(RedisConnectionFactoryfactory) {

       RedisSerializer<String>redisSerializer=newStringRedisSerializer();

       Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);

//解决查询缓存转换异常的问题

       ObjectMapperom=newObjectMapper();

       om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

       om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

       jackson2JsonRedisSerializer.setObjectMapper(om);

// 配置序列化(解决乱码的问题),过期时间600秒

       RedisCacheConfigurationconfig=RedisCacheConfiguration.defaultCacheConfig()

               .entryTtl(Duration.ofSeconds(600))

               .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer))

               .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer))

               .disableCachingNullValues();

       RedisCacheManagercacheManager=RedisCacheManager.builder(factory)

               .cacheDefaults(config)

               .build();

       returncacheManager;

   }

}

使用

@RestController

@RequestMapping("/redisTest")

publicclassRedisTestController {

   @Autowired

   privateRedisTemplateredisTemplate;

   @GetMapping

   publicStringtestRedis() {

       //设置值到redis

       redisTemplate.opsForValue().set("name","lucy");

       //从redis获取值

       Stringname= (String)redisTemplate.opsForValue().get("name");

       returnname;

   }

}


相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
Ubuntu Linux 定位技术
Trinitycore学习之在Linux环境上搭建服务器并测试运行
Trinitycore学习之在Linux环境上搭建服务器并测试运行
80 0
|
4月前
|
网络协议
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)(下)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
39 2
|
2月前
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
47 1
|
4月前
|
监控 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
47 0
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
|
2月前
|
负载均衡 应用服务中间件 Linux
深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」
深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」
42 0
|
3月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
136 0
|
3月前
|
数据采集 网络协议 搜索推荐
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
63 0
|
4月前
|
关系型数据库 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)
在当今的数字化时代,Linux已成为服务器、云计算、物联网等众多领域的核心操作系统。对于技术从业者、开发者以及系统管理员来说,掌握Linux指令不仅是一项基本技能,更是打开专业领域大门的关键。
50 3
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)
|
4月前
|
网络协议 搜索推荐 Java
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)(上)
网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)
106 2
|
5月前
|
编译器 网络安全 数据安全/隐私保护
Trinitycore学习之在vscode查看远端服务器上源码配置
Trinitycore学习之在vscode查看远端服务器上源码配置
142 0

热门文章

最新文章