Redis学习笔记

介绍

Redis 是一个基于内存的 key - value 结构的缓存数据库,读写性能很好,适合存储热点数据。

在Windows下使用Redis

下载地址: https://github.com/microsoftarchive/redis/releases
安装包下载到本地后,直接解压缩即可。

Redis内置的数据类型

Redis存储的是 key - value 结构的数据,其中 key 的类型是字符串,value 的常用类型总结了下面5种:

  • 字符串 string: 普通字符串,Redis中最简单的数据类型
  • 哈希 hash: 类似于Java中的Map
  • 列表 list: 按照插入的顺序排列,可以有重复元素,类似于Java中的List
  • 集合 set: 无序集合,没有重复元素,类似于Java中的Set
  • 有序集合 sorted set / zset: 集合中的每一个元素都关联着一个分数(double类型),根据分数升序排列,没有重复元素

Redis中常用命令

  1. 字符串类型常用命令

    • set key value 设置指定 key 的值
    • get key 获取指定 key 的值
    • setex key seconds value 设置指定 key 的值,并将 key 的存活时间设为 seconds 秒
    • setnx key value 只有当key不存在时才设置该value值
      {\\}
  2. 哈希类型常用命令

    • hset key field value 将哈希表中key对应的字段field的值设置为value
    • hget key field 获取存储在哈希表中指定字段的值
    • hdel key field 删除存储在哈希表中的指定字段
    • hkeys key 获取哈希表中所有字段
    • hvals key 获取哈希表中所有的值
      {\\}
  3. 列表常用命令

    • lpush key value1 [value2] 将一个或多个值插入到列表头部
    • lrange key start stop 获取列表中指定范围内的元素
    • rpop key 移除并获取列表中最后一个元素
    • llen key 获取指定key的列表长度
      {\\}
  4. 集合常用命令

    • sadd key member1 [member2] 向集合中添加至少一个成员
    • smembers key 返回集合中所有的成员
    • scard key 获取集合的大小
    • sinter key1 [key2] 返回给定所有集合的交集
    • sunion key1 [key2] 返回给定集合的并集
    • srem key member1 [member2] 删除指定集合中一个或多个成员
      {\\}
  5. 有序集合常用命令

    • zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
    • zrange key start stop [withscores] 通过索引区间返回有序集合中指定区间内的成员
    • zincrby key increment member 有序集合中对指定成员的分数加上增量 increment
    • zrem key member1 [member2] 删除有序集合中一个或多个成员
      {\\}
  6. 通用命令

    • keys pattern 查找所有符合给定模式(pattern)的 key
    • exists key 检查给定的 key 是否存在
    • type key 返回 key 所存储的值类型
    • del key 删除指定的 key
      {\\}

在Java代码中使用Redis

选择 Spring Data Redis 作为 Java 操作 Redis 的客户端。

  1. 导入 Spring Data Redis 的 maven 坐标
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
  2. 配置 Redis 数据源
    # RedisProperties
    spring.redis.database=11
    spring.redis.host=localhost
    spring.redis.port=6379
    
  3. 编写配置类,创建 RedisTempllate 对象
    @Configuration
    @Slf4j
    public class RedisConfiguration {
    
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            log.info("开始创建redis模板对象...");
            RedisTemplate redisTemplate = new RedisTemplate();
            //设置 redis 连接工厂对象
            redisTemplate.setConnectionFactory(redisConnectionFactory);
            //设置 redis key 序列化器
            redisTemplate.setKeySerializer(new StringRedisSerializer());
            return redisTemplate;
        }
    
    }
    
  4. 通过 RedisTemplate 对象操作 Redis
### Redis 学习笔记概述 Redis 是一种高性能的键值存储系统,支持多种数据结构并提供丰富的功能。为了全面掌握 Redis 的使用方法和技术细节,一份详尽的学习笔记应当覆盖以下几个方面: #### 一、基础概念介绍 - **定义与特性** - Redis 是一个开源的内存数据结构存储库,可以用作数据库、缓存和消息中间件[^1]。 - **应用场景** - 高效的数据读写操作使其适用于高速缓存场景;持久化的选项也允许作为可靠的主数据库。 #### 二、环境搭建指南 - **安装过程** - 安装完成后可以通过 `redis-server` 命令启动服务,默认情况下这会在前台运行并且占用当前终端会话[^2]。 - **后台模式配置** - 推荐通过编辑 `/usr/local/src/redis-6.2.6/redis.conf` 文件中的设置项使 Redis 在后台稳定工作。 #### 三、核心功能解析 - **基本命令集** - 包括字符串(Strings)、哈希(Hashes)、列表(Lists)等常见数据类型的增删改查指令。 - **高级特性应用** - 发布订阅(Pub/Sub),事务处理(Transaction),Lua脚本执行等功能的应用实例。 #### 四、集成开发实践 - **Spring Boot 整合案例** - 使用 Spring Data Redis 提供的 `RedisTemplate` 对象简化 Java 应用程序同 Redis 数据源之间的交互逻辑[^3]。 #### 五、优化策略探讨 - **性能调优技巧** - 考虑到 CPU 并非主要瓶颈因素而是受制于物理 RAM 和网卡吞吐能力的影响,合理规划硬件资源分配对于提升整体效率至关重要。 - **预加载机制说明** - 当应用程序首次上线前预先填充部分热点数据至 Redis 中可以有效缓解高峰期的压力,提高响应速度[^4]。 #### 六、可靠性保障措施 - **持久化方案对比** - RDB 快照方式能够在指定时间间隔内保存数据副本,确保意外断电等情况下的恢复可能性。 ```bash # 启动Redis服务器(建议采用守护进程方式) $ redis-server /path/to/redis.conf --daemonize yes ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值