天天看點

學習使用雲伺服器雲伺服器體驗學習體驗安裝常用指令springboot整合

雲伺服器體驗

市面上的雲伺服器種類很多,之前老師有讓我們用過騰訊雲伺服器,後來在需要使用雲伺服器的時候網上的視訊使用的是阿裡雲伺服器,是以我就來體驗了一下阿裡雲伺服器。阿裡雲伺服器對學生還是很友好的,有着一周的免費使用時間并且還可以續費使用。

阿裡雲伺服器體驗

阿裡雲伺服器還是很穩定的,使用過程中并沒有發現任何問題,當然也可能是因為我接觸的不夠多的原因。

學習體驗

目前用雲伺服器學習了一下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;

 }

   public CacheManager cacheManager(RedisConnectionFactory factory) {

//解決查詢緩存轉換異常的問題

// 配置序列化(解決亂碼的問題),過期時間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;