首页 > 数据库 >SpeingBoot集成Redis和Redis的五种类型数据

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

时间:2023-05-26 11:06:33浏览次数:64  
标签:哈希 过期 Redis 元素 SpeingBoot value 五种 key zs



目录

  • 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


标签:哈希,过期,Redis,元素,SpeingBoot,value,五种,key,zs
From: https://blog.51cto.com/u_16130732/6354371

相关文章

  • redis 数据结构
    数据结构预算法最难啃,并且redis底层是c,需要熟悉c才好根据源码分析。先占坑吧SDSredis的String的数据结构,全称为简单动态字符串,simpledynamicstring,redis是c编写的,为什么不用c语言的字符串类型呢,肯定是为了优化性能而自定义的一种数据类型举个简单的例子:c获取字符串......
  • Redis
    Redis(REmoteDIctionaryService)是一个开源的键值对数据库服务器。Redis更准确的描述是一个数据结构服务器。Redis的这种特殊性质让它在开发人员中很受欢迎。Redis不是通过迭代或者排序方式处理数据,而是一开始就按照数据结构方式组织。早期,它的使用很像Memcached,但随着Redi......
  • Redis
    Redis1.认识redis1.1什么是NoSQLNoSQL是非关系数据库数据结构:非结构化数据关联:非关联的查询方式:非SQL查询事务特性:BASE(无法满足事务的ACID)使用场景数据结构不固定的对一致性,安全性要求不高对性能有要求1.2什么是RedisRedis是一个基于内存的键值型NoSQ......
  • Memcached与Redis的区别和选择
    一、Memcached简介Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是以LiveJournal旗下DangaInteractive公司的BradFitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。Memcache......
  • redis持久化配置
    redis有两种持久化方式:RDB和AOF。具体差别跟优缺点可参考redis数据的两种持久化方式对比,本篇只介绍这两种方式怎么配置RDB配置方式默认情况下,是快照RDB的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdbredis.conf默认配置:save9001save30010sav......
  • 2.Redis的安装与配置-动力节点Redis7笔记
    2Redis的安装与配置这里是要将Redis安装到Linux系统中。2.1Redis的安装2.1.1克隆并配置主机修改主机名:/etc/hostname修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens332.1.2安装前的准备工作2.1.2.1安装gcc由于Redis是由C/C++语言编写的,而从官网下载的Redis......
  • Redis的安装与配置-动力节点最全Redis7笔记
    ##【动力节点】Redis入门到高级教程,全网最新最全redis缓存教程,redis百科大全2Redis的安装与配置这里是要将Redis安装到Linux系统中。2.1Redis的安装2.1.1克隆并配置主机修改主机名:/etc/hostname修改网络配置:/etc/sysconfig/network-scripts/ifcfg-ens332.1.2安装前的......
  • Redis中的缓存穿透|缓存击穿|缓存雪崩
    Redis是一种内存数据库,也就是说,它是一种存储在内存中的数据库.相当于Redis是提供一种缓存服务,提供这种缓存服务的有很多种,包括Redis,MongoDB等,其中国内用的最多的最常见的可能就是Redis既然是缓存服务,那么就可能存在缓存穿透,缓存击穿和缓存雪崩的现象存在,现在我们来分别详细描......
  • .NET中使用redis
    NuGet中安装对应的redis操作工具:StackExchange.Redis redis帮助类: ///<summary>   ///Redis读写帮助类   ///</summary>   publicclassRedisHelper   {       privatestringRedisConnectionStr=ConfigurationManager.AppSettings["RedisC......
  • 面试八股文之redis
    Redis是什么?请介绍一下Redis的特点和用途。Redis的数据结构有哪些?请分别介绍。Redis的持久化方案有哪些?它们之间的区别是什么?Redis如何实现分布式锁?Redis支持的数据类型中,哪些能实现过期时间的功能?Redis单线程为什么能够处理高并发的请求?Redis的并发竞争......