雲伺服器體驗
市面上的雲伺服器種類很多,之前老師有讓我們用過騰訊雲伺服器,後來在需要使用雲伺服器的時候網上的視訊使用的是阿裡雲伺服器,是以我就來體驗了一下阿裡雲伺服器。阿裡雲伺服器對學生還是很友好的,有着一周的免費使用時間并且還可以續費使用。
阿裡雲伺服器體驗
阿裡雲伺服器還是很穩定的,使用過程中并沒有發現任何問題,當然也可能是因為我接觸的不夠多的原因。
學習體驗
目前用雲伺服器學習了一下redis,但是對着教程一步一步操作還是很簡單的,尤其是使用的是同一種伺服器。
安裝
- 先下載下傳tar包
- 解壓 tar -zxvf redis-6.2.5.tar.gz
- 下載下傳C++環境 yum install gcc-c++
- 檢視gcc版本 gcc -v
- 在redis目錄下面 make
- 然後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;