SpeingBoot集成Redis和Redis的五种类型数据

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

猜你喜欢

转载自blog.csdn.net/xqnode/article/details/102903548
今日推荐