目录
- Springboot集成redis
- redis-cli的一些小知识点
Springboot集成redis
maven配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置redisTemplate,因为只操作字符串,就设置了StringRedisSerializer:
@Configuration
public class RedisConfig {
/**
* retemplate相关配置
* @param factory
* @return
*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 配置连接工厂
template.setConnectionFactory(factory);
//设置key的序列化器
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);
// //设置value的序列化器
template.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
return template;
}
}
测试一下:
@SpringBootTest
class DemoApplicationTests {
@Autowired
RedisTemplate<String, Object> redisTemplate;
@Test
void contextLoads() {
String key = "a";
redisTemplate.opsForValue().set(key, false);
Object value = redisTemplate.opsForValue().get(key);
System.out.println(value);
}
}
使用StringRedisTemplate:
@Autowired
StringRedisTemplate stringRedisTemplate;
@Test
void contextLoads1() {
String key = "xia";
stringRedisTemplate.opsForValue().set(key, "1");
Object value = stringRedisTemplate.opsForValue().get(key);
System.out.println(value);
}
redis-cli的一些小知识点
连接:redis-cli --raw -h host -p port -a password (加上–raw后防止中文乱码)
基本操作
- SELECT index 选择数据库
- DBSIZE 查看当前数据库key的数量
- FLUSHDB 清空当前库记录
- FLUSHALL 清空所有库的记录
- move key dbIndex 将某键值对移动到某db中去
- EXPIRE key seconds 设置一个key在当前时间"seconds"(秒)之后过期。返回1代表设置成功,返回0代表key不存在或者无法设置过期时间。
- PEXPIRE key milliseconds 设置一个key在当前时间"milliseconds"(毫秒)之后过期。返回1代表设置成功,返回0代表key不存在或者无法设置过期时间。
- TTL KEY 获取key的过期时间。如果key存在过期时间,返回剩余生存时间(秒);如果key是永久的,返回-1;如果key不存在或者已过期,返回-2。
- PTTL KEY 获取key的过期时间。如果key存在过期时间,返回剩余生存时间(毫秒);如果key是永久的,返回-1;如果key不存在或者已过期,返回-2。
- PERSIST key 移除key的过期时间,将其转换为永久状态。如果返回1,代表转换成功。如果返回0,代表key不存在或者之前就已经是永久状态。
- SETEX key seconds value SETEX在逻辑上等价于SET和EXPIRE合并的操作,区别之处在于SETEX是一条命令,而命令的执行是原子性的,所以不会出现并发问题。
K-V:
- SET key value 设置key-value
- GET key 根据key获取value
- DEL key 删除某key
- TYPE key 获取其类型
- EXISTS key 判断某个key是否存在
LIST:
- LPUSH key values… 从左边添加数据到列表
- RPUSH key values… 从右边添加数据到列表
- LRANGE key start stop 遍历列表
- LPOP key 从左边推出数据
- RPOP key 从右边推出数据
- LINDEX key index 从左检索key的某一序号的值
- LLEN key 显示长度
- LSET key index value 设置左边某个索引的值
SET:
- SADD key values… 创建并添加元素
- SMEMBERS key 查看set中的元素
- SISMEMBER key value 查看set中是否包含某元素
- SREM key value 删除set中某一元素
- SPOP key count 随机删除count个元素
- scard key 显示元素个数
ZSET:
- zadd zs 1 a 2 b 创建zs,元素a的分值为1元素b的分值为2
- zscore zs a 查看zs中元素a的分值
- zrange zs 0 10 查看zs中,按下标0到10查看
- zrevrange zs 0 -1 查看zs中元素,倒序
- zincrby zs 1 a 元素a的分值增加1,负数时为减少
- zcard zs 返回zs中元素个数
- zrem zs a 删除zs中的元素a
HASH:
- HSET key field value 将哈希表 key 中的字段 field 的值设为 value
- HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值
- HGET key field 获取存储在哈希表中指定字段的值。
- HVALS key 获取哈希表中所有值
- HDEL key field1 [field2] 删除一个或多个哈希表字段
- HLEN key 获取哈希表中字段的数量
- HMGET key field1 [field2] 获取所有给定字段的值
- HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中
- HGETALL key 获取在哈希表中指定 key 的所有字段和值
END