目录

一、SpringBoot整合Redis

二、常见数据类型:

1、字符串:

2、哈希 hash :

3、list列表:

4、Set集合:

5、权重有序集合set

6、常用指令:


一、SpringBoot整合Redis

1、SpringBoot Data Redis:

Spring Data Redis中提供了一个高度封装的类:RedisTemplate,针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下:

类名 解释
ValueOperations 简单K-V操作
SetOperations set类型数据操作
ZSetOperations zset类型数据操作
HashOperations 针对map类型的数据操作
ListOperations 针对list类型的数据操作

2、导入依赖:

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

3、配置xml文件:

spring:redis:host: localhostport: 6379database: 0 # redis默认会创建16个数据库,当前是保存在0号数据库jedis:pool:max-active: 8 #最大连接数max-wait: 1ms # 连接池最大等待阻塞时间max-idle: 4 # 连接池最大空闲链接min-idle: 0 #连接池中最小空闲链接

4、书写配置类:

Redis提供的默认序列模式会导致key值存入的时候变形,所以我们需要书写一个配置类来规范这一操作,避免key不对应问题。

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;@Configuration
public class RedisConfig extends CachingConfigurerSupport {@Beanpublic RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();//默认的Key序列化器为:JdkSerializationRedisSerializerredisTemplate.setKeySerializer(new StringRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setConnectionFactory(connectionFactory);return redisTemplate;}}

5、获取对应对象

optFor*来获取想要操作的对象:

以opsForValue为例,这就相当于在操作字符串类型

二、常见数据类型:

1、字符串:

SET key value 设置指定key的值1,重复设置会覆盖value,设置的值均为字符串类型
GET key 获取指定key的值
SETEX key seconds value  设置指定key的值,并将 key 的过期时间设为 seconds 秒(验证码服务)
SETNX key value 只有在 key 不存在时设置 key 的值

测试用例:

在SpringBoot中的应用:

    @Testvoid testString() {redisTemplate.opsForValue().set("name2","123"); //设置一个字符串类型的键值对String name = (String) redisTemplate.opsForValue().get("name2"); //取出key=names的值System.out.println(name);//设置一个跟时间相关的key 相当于setexredisTemplate.opsForValue().set("timeKey","timeForTen",10, TimeUnit.SECONDS);//setnx 只有在 key 不存在时设置 key 的值Boolean flag = redisTemplate.opsForValue().setIfAbsent("name2", "456");System.out.println(flag);  //返回false,因为name2已经存在,没有设置name2的值}

2、哈希 hash

HSET key field value 将哈希表 key 中的字段 field 的值设为 value
HGET key field 获取存储在哈希表中指定字段的值
HDEL key field   删除存储在哈希表中的指定字段
  HKEYS key   获取哈希表中所有字段
HVALS key   获取哈希表中所有值
HGETALL key   获取在哈希表中指定 key 的所有字段和值

测试用例:

在SpringBoot中的应用:

    @Testvoid testHash(){//获取操作对象HashOperations hashObj = redisTemplate.opsForHash();//存值hashObj.put("key01","name","xiaoSong");hashObj.put("key01","age","12");hashObj.put("key01","sex","man");//取值String name = (String) hashObj.get("key01", "name");System.out.println(name);//获取全部的键:Set keys = hashObj.keys("key01");for (Object one : keys) {System.out.println(one);}//获取所有的值:List values = hashObj.values("key01");for (Object one : values) {System.out.println(one);}}

3、list列表:

1、list是Redis能实现优先队列的基础

2、列表中是允许有重复元素的

LPUSH key value1 [value2]   将一个或多个值插入到列表头部
LRANGE key start stop   获取列表指定范围内的元素
RPOP key 移除并获取列表最后一个元素
LLEN key   获取列表长度
BRPOP key1 [key2 ] timeout   移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时  或发现可弹出元素为止

测试用例:

SpringBoot中的应用

    @Testvoid testForList(){//获取操作对象ListOperations listObj = redisTemplate.opsForList();//存值listObj.leftPush("list1","a");listObj.leftPushAll("list1","b","c","d");//取值List<String> values = listObj.range("list1",0,-1);for (String one : values) {System.out.println(one); // d b c a}//获取列表长度:Long lsize = listObj.size("list1");int size = lsize.intValue(); //long转化为int类型for (int i = 0; i < size; i++) {//出队列:String value = (String) listObj.rightPop("list1");System.out.println(value); //a b c d }}

4、Set集合:

无序 元素的值唯一

SADD key member1 [member2] 向集合添加一个或多个成员
SMEMBERS key 返回集合中的所有成员
SCARD key 获取集合的成员数
SINTER key1 [key2]   返回给定所有集合的交集
SUNION key1 [key2]   返回所有给定集合的并集
SDIFF key1 [key2]   返回给定所有集合的差集
SREM key member1 [member2]   移除集合中一个或多个成员

用例:

SpringBoot中应用:

    @Testvoid testForSet(){//获取对象SetOperations setObj = redisTemplate.opsForSet();//存值:setObj.add("set1","b","c","a");//取值Set<String> setList = setObj.members("set1");for (String one : setList) {System.out.println(one);}//删值:setObj.remove("set1","b");}

5、权重有序集合set

集合中的元素是根据每个元素的权重进行排序,且每个元素不能重复,升序排序

ZADD key score1 member1

[score2 member2]

向有序集合添加一个或多个成员,或者更新已存在成员的  分数
ZRANGE key start stop [WITHSCORES]   通过索引区间返回有序集合中指定区间内的成员
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
ZREM key member [member ...]   移除有序集合中的一个或多个成员

测试用例:

SpringBoot 中的应用:

    @Testvoid testForZset(){//获取对象ZSetOperations zsetObj = redisTemplate.opsForZSet();//存值zsetObj.add("zset01","a",10.0);zsetObj.add("zset01","b",12.0);zsetObj.add("zset01","c",4.0);zsetObj.add("zset01","d",7.0);//取值Set<String> list = zsetObj.range("zset01", 0, -1);for (String one : list) {System.out.println(one);}//加分zsetObj.incrementScore("zset01","b",20.0);//删除zsetObj.remove("zset01","a","c");}

6、常用指令:

KEYS pattern 查找所有符合给定模式( pattern)的 key
EXISTS key 检查给定 key 是否存在
 TYPE key 返回 key 所储存的值的类型
TTL key 返回给定 key 的剩余生存时间(TTL, time to live),以秒为单位
DEL key   该命令用于在 key 存在是删除 key

测试用例:

SpringBoot应用:

    @Testvoid testCommon(){//获取所有的keySet<String> keys = redisTemplate.keys("*");for (String one : keys) {System.out.println(one);}//判断key是否存在Boolean name = redisTemplate.hasKey("key01");System.out.println(name);//删除指定keyBoolean flag = redisTemplate.delete("zset01");System.out.println(flag);//获取指定key对应的valueDataType type = redisTemplate.type("key01");System.out.println(type);}

SpringBoot如何整合Redis?SpringBoot如何使用Redis?Redies基本使用。相关推荐

  1. SpringBoot(46) 整合ShedLock实现分布式定时任务(redis版)

    文章目录 一.前言 二.SpringBoot整合ShedLock 1.`pom.xml`中引入依赖 2.Shedlock配置类 3.测试数据定时任务 三.本文案例demo源码 一.前言 本文将基于sp ...

  2. Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo

    Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo 最终效果如下 大概就几个步骤 1.安装 Docker CE 2.运行 Redis 镜像 3.Java 环境准备 4. ...

  3. SpringBoot第九篇: springboot整合Redis

    这篇文章主要介绍springboot整合redis,至于没有接触过redis的同学可以看下这篇文章:5分钟带你入门Redis. 引入依赖: 在pom文件中添加redis依赖: <dependen ...

  4. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  5. SpringBoot系列十:SpringBoot整合Redis

    From: https://www.cnblogs.com/leeSmall/p/8728231.html 声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Sprin ...

  6. Springboot项目整合redis集群

    文章目录 1.redis集群搭建 详情见: https://blog.csdn.net/qq_45076180/article/details/103026150 2.springboot整合redi ...

  7. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 1.前言 本文主要介绍使用SpringBoot与shiro实现基 ...

  8. SpringBoot之整合Redis分析和实现-基于Spring Boot2.0.2版本

    一.背景介绍 公司最近的新项目在进行技术框架升级,基于的Spring Boot的版本是2.0.2,整合Redis数据库.网上基于2.X版本的整个Redis少之又少,中间踩了不少坑,特此把整合过程记录, ...

  9. Redis(五)整合:SpringBoot如何整合Redis?

    前言 SpringBoot应该不用过多介绍了吧!是Spring当前最火的一个框架,既然学习了Redis,我们肯定是要在实际项目中使用,那么肯定首选整合SpringBoot啦! 简单介绍下SpringB ...

  10. 【笔记】Spring - Spring Data 整合:SpringBoot、Redis

    相关 [笔记]Spring - Spring Data JPA - https://lawsssscat.blog.csdn.net/article/details/103466076 资料 hm s ...

最新文章

  1. LeetCode简单题之将句子排序
  2. 基于docker+gunicorn部署sanic项目
  3. linux syslogd 源码,syslogd 详解二
  4. hp compaq presarop v3009笔记本重新启动蓝屏!
  5. CentOS7中多台服务器配置SSH免密钥登录
  6. php 单元测试 麻烦,php – 正确的单元测试
  7. 课时18:函数:灵活即强大
  8. mysql相关命令操作
  9. java在win8闪退_解决Win8/Win8.1系统下的IE11闪退的六种方法
  10. python的语言风格(一)
  11. 一种表格数据比对的方法
  12. Vue.js实现文章评论和回复评论功能
  13. 计算机建立局域网共享,局域网两台电脑如何建立共享文件夹
  14. 互联网巨头常用词汇大全 每一个词都在改变世界
  15. SQL获取当前时间| 日期| SQL时间格式| SQL时间截取| getdate()用法
  16. 3dmax2014植树插件_3DsMax种树插件:ForestPack Pro v6.1.2 For 2015-2019 updated Libraries
  17. c语言打印数组中的汉字
  18. JDBC数据库操作工具类——JdbcUtils
  19. 中国传统艺术服饰:云肩nbsp;服装设计
  20. linux下查看cpu核数以及内存大小

热门文章

  1. 解决shp数据图形数与表记录数不一致方法初探
  2. 其他问题怎么创建百度指数
  3. Java大数据工程师面试宝典
  4. Java毕设项目便利店库存管理计算机(附源码+系统+数据库+LW)
  5. 理解DALL·E 2, Stable Diffusion和 Midjourney工作原理
  6. 全网首发,大众奥迪领驭帕萨特DIY数码碟盒增加USB和蓝牙播放音乐功能使用原车接口无损改装
  7. 想知道什么换发型软件好吗
  8. 雷卯推荐TVS低漏流100uA,低电压3.3v,功率400W
  9. 曾鸣:取势、明道、立理、优术
  10. Math.js库的使用