当前位置: 首页 > news >正文

SpringBoot(七) --- Redis基础

 

目录

前言

一、Redis入门

二、Redis常用数据类型

三、Redis常用命令

1. 字符串操作命令

2. 哈希操作命令

3. 列表操作命令

4. 集合操作命令

5. 有序集合操作命令

6.通用命令

四、在Java中操作Redis


前言

Redis是一个基于内存的key-value结构数据库,有以下的优点:

  • 基于内存存储,读写性能高
  • 适合存储热点数据(热点商品、资讯、新闻)
  • 企业应用广泛

Redis安装包分为Windows版和Linux版:

  • Windows版下载地址:https://github.com/microsoftarchive/redis/releases
  • Linux版下载地址:https://download.redis.io/releases/


一、Redis入门

Redis的Windows版属于绿色软件,直接解压就可以使用,解压后目录结构如下图,红字是三个重要的文件:

如何启动Redis服务呢?

输入redis-server.exe redis.windows.conf,即可打开Redis服务,默认是6379端口。

然后通过客户端连接Redis服务器,还是在当前文件夹通过cmd打开一个新的命令行窗口,输入redis-cli.exe。

还可以通过以下命令还指定不同ip的Redis服务器。-h后跟的是ip地址, -p后面跟的是端口号。-a后面跟的是redis数据库的密码。我们可以在配置文件中修改Redis数据库的密码

二、Redis常用数据类型

哈希这种数据结构常常用来存储对象数据。

三、Redis常用命令

我们需要借助一块Redis的图形化工具Another Redis Desktop Manager。

1. 字符串操作命令

在我们的图形化界面中可以看到相应的命令提示

命令执行完之后,我们可以发现设置好了一条字符串数据。

2. 哈希操作命令

3. 列表操作命令

直接利用第一个命令就可以创建列表。

4. 集合操作命令

5. 有序集合操作命令

ZINCRBY key increment member 这个命令可以对指定成员加上分数increment。

若要查询有序集合中的所有成员: ZRANGE key 0 -1。

6.通用命令

KEYS *         返回所有的key

KEYS set*             返回所有以set开头的的key 

四、在Java中操作Redis

使用Spring Data Redis来进行Redis操作。

导入Maven坐标:

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

配置Redis数据源:

spring:  redis:host: localhostport: 6379password: 123456database: 0

编写配置类:

@Configuration
@Slf4j
public class RedisConfiguration {@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {log.info("开始创建redis模版对象..");RedisTemplate redisTemplate = new RedisTemplate<>();// 设置redis的连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);// 设置redis key的序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}}

通过RedisTemplate对象操作Redis(通过单元测试来演示):

@SpringBootTest
public class SpringDataRedisTest {@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void testRedisTemplate() {System.out.println(redisTemplate);// 获取Redis中的字符串类型ValueOperations valueOperations = redisTemplate.opsForValue();// 获取Redis中的哈希类型HashOperations hashOperations = redisTemplate.opsForHash();// 获取Redis中的列表类型ListOperations listOperations = redisTemplate.opsForList();// 获取Redis中的集合类型SetOperations setOperations = redisTemplate.opsForSet();// 获取Redis中的有序集合类型ZSetOperations zSetOperations = redisTemplate.opsForZSet();}/*** 操作字符串类型的数据*/@Testpublic void testString() {// 设置字符串类型的数据redisTemplate.opsForValue().set("city", "北京");// 获取city的值String city  = (String) redisTemplate.opsForValue().get("city");System.out.println(city);// 可以设置数据的有效期redisTemplate.opsForValue().set("code", "1234", 60, TimeUnit.SECONDS);}}

    /*** 操作哈希类型的数据*/@Testpublic void testHash() {HashOperations hashOperations = redisTemplate.opsForHash();// 向数据库中传入哈希类型的数据hashOperations.put("101", "name", "menghao");hashOperations.put("101", "age", "16");// 获取数据String name = (String) hashOperations.get("101", "name");System.out.println(name);System.out.println("---------------------------------------------------");// 获取所有的keySet keys = hashOperations.keys("101");System.out.println(keys);System.out.println("---------------------------------------------------");// 获取所有的valuesList values = hashOperations.values("101");System.out.println(values);// 删除数据(删除101中的age字段)hashOperations.delete("101", "age");}
}

操作其他类型的数据与操作字符串和哈希表都差不多。只需清楚每个方法是做什么的即可。


http://www.lqws.cn/news/116263.html

相关文章:

  • Ubuntu 25.10 将默认使用 sudo-rs
  • web全栈开发学习-01html基础
  • PyTorch学习笔记 - 损失函数
  • C++ 使用 ffmpeg 解码本地视频并获取每帧的YUV数据
  • 大数据学习(128)-数据分析实例
  • 数据结构(8)树-二叉树
  • [ Qt ] | 与系统相关的操作(二):键盘、定时器、窗口移动和大小
  • Go语言爬虫系列教程4:使用正则表达式解析HTML内容
  • 大数据学习(129)-Hive数据分析
  • hive 3集成Iceberg 1.7中的Java版本问题
  • ‘pnpm‘ 不是内部或外部命令,也不是可运行的程序
  • 安全-JAVA开发-第二天
  • 一个完整的时间序列异常检测系统,使用Flask作为后端框架,实现了AE(自编码器)、TimesNet和LSTM三种模型,并提供可视化展示
  • Vue插件
  • 几何绘图与三角函数计算应用
  • Vue-Todo-list 案例
  • 点评中是如何实现短信登录的
  • JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/等待通知机制/锁消除
  • 网络攻防技术十四:入侵检测与网络欺骗
  • 哈希表入门:用 C 语言实现简单哈希表(开放寻址法解决冲突)
  • 分布式电源接入配电网的自适应电流保护系统设计与实现
  • 【系统架构设计师】绪论-系统架构概述
  • 【WPF】WPF 项目实战:构建一个可增删、排序的光源类型管理界面(含源码)
  • 界面组件DevExpress WPF中文教程:Grid - 如何识别行和卡片?
  • WPF可拖拽ListView
  • 分布式爬虫代理IP使用技巧
  • C#由于获取WPF窗口名称造成的异常报错问题
  • Python 中 kwargs.get() 方法详解
  • 【从前端到后端导入excel文件实现批量导入-笔记模仿芋道源码的《系统管理-用户管理-导入-批量导入》】
  • nssm配置springboot项目环境,注册为windows服务