学习使用云服务器-阿里云开发者社区

开发者社区> 飞天加速计划> 正文
登录阅读全文

学习使用云服务器

简介: 在学习一些框架的时候就需要用到云服务器,比如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

set key 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 20 value //设置值的时候设置value

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

lpush

rpush

lrange

lpop

rpop

rpoplpush

lindex

llen

get k1//得到key为k1的值

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

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

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

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

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

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

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

select 1//选择数据库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

public class RedisConfig extends CachingConfigurerSupport {

   @Bean

   public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {

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

       RedisSerializer<String> redisSerializer = new StringRedisSerializer();

       Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

       ObjectMapper om = new ObjectMapper();

       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);

       return template;

 }

   @Bean

   public CacheManager cacheManager(RedisConnectionFactory factory) {

       RedisSerializer<String> redisSerializer = new StringRedisSerializer();

       Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

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

       ObjectMapper om = new ObjectMapper();

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

       om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

       jackson2JsonRedisSerializer.setObjectMapper(om);

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

       RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()

               .entryTtl(Duration.ofSeconds(600))

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

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

               .disableCachingNullValues();

       RedisCacheManager cacheManager = RedisCacheManager.builder(factory)

               .cacheDefaults(config)

               .build();

       return cacheManager;

   }

}

使用

@RestController

@RequestMapping("/redisTest")

public class RedisTestController {

   @Autowired

   private RedisTemplate redisTemplate;

   @GetMapping

   public String testRedis() {

       //设置值到redis

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

       //从redis获取值

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

       return name;

   }

}


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

助力开发者全生命周期成长,培育数字时代的创新人才

最新文章
相关文章
官网链接