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

Java 中操作 Redis

文章目录

    • 一、Redis 常用数据类型
    • 二、Redis 常用操作命令
      • 1. 字符串命令
      • 2. 哈希命令
      • 3. 列表命令
      • 4. 集合命令
      • 5. 有序集合命令
      • 6. 通用命令
    • 三、在 Java 中操作 Redis
      • 1. 导入 maven 坐标
      • 2. 配置 Redis 数据源
      • 3. 编写配置类
    • 四、在代码中的具体使用

一、Redis 常用数据类型

Redis 存储的是键值对结构的数据,其中 key 是字符串类型,value 有5种常用的数据类型:字符串 string、哈希 hash、列表 list、集合 set 以及有序集合 sorted set / zset。

二、Redis 常用操作命令

1. 字符串命令

在这里插入图片描述

① 设置 key 的过期时间:短信验证码一分钟后自动过期;
② key 不存在时设置 key 的值:分布式锁。

在这里插入图片描述

在这里插入图片描述

2. 哈希命令

在这里插入图片描述

哈希特别适合存储对象!

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

3. 列表命令

在这里插入图片描述

取出跟存入的顺序一致!

在这里插入图片描述

4. 集合命令

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

5. 有序集合命令

在这里插入图片描述

Redis 有序集合是 string 类型元素的集合,且不允许有重复成员,每个元素都会关联一个 double 类型的分数,通过这个分数对集合进行排序!

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

6. 通用命令

在这里插入图片描述

三、在 Java 中操作 Redis

1. 导入 maven 坐标

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

2. 配置 Redis 数据源

在这里插入图片描述

3. 编写配置类


import lombok.extern.slf4j.Slf4j;
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;@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;}}

四、在代码中的具体使用


import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.*;import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;@SpringBootTest
public class SpringDataRedisTest {@Autowiredprivate RedisTemplate redisTemplate;/*** 通过valueOperations对象就可以操作字符串类型的数据*/@Testpublic void testRedisTemplate1() {ValueOperations valueOperations = redisTemplate.opsForValue();//插入数据valueOperations.set("name", "栈老师不回家");//读取数据String name = (String) valueOperations.get("name");//设置数据一分钟后过期,自动被清理,这里与redis原命令不同valueOperations.set("code", "1234", 1, TimeUnit.MINUTES);//只有当key不存在时设置其value值,这里也与redis命令不同valueOperations.setIfAbsent("lock", "1");}/*** 操作哈希类型*/@Testpublic void testRedisTemplate2() {HashOperations hashOperations = redisTemplate.opsForHash();//插入数据hashOperations.put("001", "age", "20");//读取数据String age = (String) hashOperations.get("001", "age");//获得所有的keySet keys = hashOperations.keys("001");//获得所有的valueList values = hashOperations.values("001");//删除一条数据
//        hashOperations.delete("001", "age");}/*** 通用命令操作*/@Testpublic void testRedisTemplate3() {//查找所有的keySet keys = redisTemplate.keys("*");//检查给定key是否存在Boolean name = redisTemplate.hasKey("name");//返回key所存储值的数据类型DataType type = redisTemplate.type("name");//删除key
//        redisTemplate.delete("name");}
}
http://www.lryc.cn/news/126961.html

相关文章:

  • 数据结构--最短路径 Dijkstra算法
  • 在 Linux 虚拟机上使用 Azure 自定义脚本扩展版本
  • W5500-EVB-PICO 做UDP Server进行数据回环测试(七)
  • ES搜索引擎入门+最佳实践(九):项目实战(二)--elasticsearch java api 进行数据增删改查
  • android内存分析工具记录,请利用好最后2个神器
  • 安科瑞变电所运维平台在电力系统中应用分析
  • uniapp开发微信小程序使用painter将页面转换为图片并保存到本地相册
  • 790. 数的三次方根
  • POSTGRESQL 关于2023-08-14 数据库自动启动文章中使用KILL 来进行配置RELOAD的问题解释...
  • vue 使用插件高德地图--vue-amap
  • 减速比如何计算
  • HarmonyOS/OpenHarmony应用开发-ArkTSAPI组件总体分类与说明(下)
  • 势函数和鞅的停时定理
  • 途乐证券-炒股开户流程是怎样的?
  • Eclipse如何设置快捷键
  • 刷享全球美好 中信银行信用卡推出跨境消费系列活动
  • LeetCode算法心得——限制条件下元素之间的最小绝对差(TreeSet)
  • MySQL表的基础操作(crud)
  • vue中的activated和deactivated
  • unity 发布报错 The type or namespace name `UnityEditor‘ could not be found.
  • 在ubuntu中将dict.txt导入到数据库sqlite3
  • nginx 代理postgresql
  • 小程序 CSS-in-JS 和原子化的另一种选择
  • flutter项目 环境搭建
  • PG-DBA培训12:PostgreSQL物理备份与恢复实战
  • 饿了么大数据开发凉经
  • 前端安全:XSS 与 CSRF 安全防御
  • 应用层读取wfp防火墙阻断记录
  • web基础和tomcat的安装,部署jpress应用
  • idea git命令使用