Redis 学习笔记

系列文章目录


一、Redis入门

1.1 什么是Redis

  • Redis 是用 C 语言开发的一个开源的高性能键值对 key-value 数据库,官方提供的数据是可以达到 100000+QPS(每秒查询次数)
  • 热点数据:短时间内有大量用户来读取,如果存在 MySQL 中数据库压力很大,因为 MySQL 数据库将数据存在磁盘上
    在这里插入图片描述
  • Redis 是非关系型数据库
    在这里插入图片描述

1.2 Redis 下载安装

  • Linux 下载安装
    在这里插入图片描述
  • Window 下载安装
    在这里插入图片描述

1.3 Redis 服务启动与停止

  • Linux 进入 redis/src目录下
    在这里插入图片描述
  • Window中启动 redis
    在这里插入图片描述

1.4 设置密码远程连接

1.5 Redis 数据类型

  • key是固定的字符串类型,value有5中常用数据类型
    在这里插入图片描述

二、Redis 常用命令

2.1 字符串String操作命令

  • SETEX 的过期时间到了之后就会把该键值对删除,比较常见的应用就是手机发送验证码登录,但是这个验证码只在某一段时间内有效,过期就不能使用了
  • SETNX 只要key值之前设置过,就无法设置value值,常见应用于分布式锁
    在这里插入图片描述
  • 只要是使用 set 命令,存入的数据 value值 都是 字符串String 类型
    在这里插入图片描述
  • (nil)相当于Java语言中的null
    在这里插入图片描述

2.2 哈希Hash操作命令

在这里插入图片描述
在这里插入图片描述

2.3 列表list操作命令

  • list 存入的数据是有顺序的,但是删除数据可以从头部删也可以从尾部删除(类似双端队列),也可以存在重复元素
    在这里插入图片描述
    在这里插入图片描述

2.4 集合set常用命令

  • set存入的数据是无序的,但是value值是唯一的,不能重复
    在这里插入图片描述
    在这里插入图片描述
  • sdiff key1 key2,查询出的结果是key1中减去和key2中相同的集合成员,剩下的key1中的集合成员
    在这里插入图片描述

2.5 有序集合sorted set操作命令

在这里插入图片描述

2.6 Redis常用命令

  • 通用命令主要针对不同类型的 key

在这里插入图片描述

  • keys * 代表查询现有的所有类型的key
  • TTL命令如果返回值是 -1 代表永久存在
    在这里插入图片描述

三、Java中操作Redis

3.1 Spring Data Redis简化操作(基础环境&设置序列化器)

  • 导入坐标
    在这里插入图片描述
  • Spring data redis 给物种类型提供了封装类
    在这里插入图片描述
  • Redis相关配置
  • select index 表示切换数据库
    在这里插入图片描述
  • 在配置文件中修改默认的初始数据库数量
    在这里插入图片描述
    在这里插入图片描述
  • 代码示例
    在这里插入图片描述
  • 改变rediTemplates序列化,数据传输中做序列化可以保证安全
    在这里插入图片描述
  • 添加RedisTemplate配置类
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * Redis配置类
 */

@Configuration
public class RedisConfig extends CachingConfigurerSupport {

    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {

        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();

        //默认的Key序列化器为:JdkSerializationRedisSerializer
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());

        redisTemplate.setConnectionFactory(connectionFactory);

        return redisTemplate;
    }

}

3.2 数据类型操作

  • String 类型代码示例
  • 通过 RedisTemplate 模板类获取操作 String 类型数据的类
    在这里插入图片描述
  • hash 类型代码示例
    在这里插入图片描述
    在这里插入图片描述
  • List 列表类型代码示例
    在这里插入图片描述
    在这里插入图片描述
  • set 类型代码示例
    在这里插入图片描述
  • Zset (有序集合)类型代码示例
    在这里插入图片描述
    在这里插入图片描述
  • 通用操作代码示例
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值