【Redis】初识Redis

news2024/9/21 4:35:43

  • 1.初识Redis
    • 1.1安装
    • 1.2数据结构
      • 1.2.1 通用命令
      • 1.2.2 String类型
        • key的结构
      • 1.2.3 Hash类型
  • 2.Jedis
    • 2.1 添加依赖及配置
    • 2.2 配置StringRedisTemplte

1.初识Redis

Redis是一个基于内存的键值型NoSQL数据库。其具有性能优越、持久化的特点,能够支持每秒十几万次的读写操作。

1.1安装

安装成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D32hRbKi-1670254635383)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20221129191146532.png)]

1.2数据结构

Redis是一个key-value的数据库。

key:“String”,

value:通常是一个字符串

查阅网址:redis命令手册

1.2.1 通用命令

KEYS:查看符合模板的所有key

DEL:删除一个指定的key

EXISTS:判断key是否存在

EXPIRE:给一个key设置一个有效期,有效期到时会被自动删除

TTL:查看一个key的剩余有效期

1.2.2 String类型

其在底层是以字节数组形式存储的。

key的结构

key可以设置为多个单词组成的层级结构,用:隔开

例如:project:user:1

1.2.3 Hash类型

结构:Hash结构可以将对象中的每个字段独立存储

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buC8C6aL-1670254635384)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20221128225955973.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cHqkEAD8-1670254635384)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20221128225754509.png)]

  • List类型
  • Set类型
  • SortedSet类型

2.Jedis

在Java项目中使用Redis步骤如下。

2.1 添加依赖及配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
spring:
  redis:
    host: 192.168.1.158
    port: 6379
    password: 123456
    lettuce:
      pool:
        max-active: 10
        max-idle: 10
        min-idle: 1
        time-between-eviction-runs: 10s

2.2 配置StringRedisTemplte

在spring中,将对象存入Redis中需要将其序列化,其序列化有两种方式:

两种序列化实践方案:

  1. 自定义RedisTemplate,修改RedisTemplate的序列化器为GenericJacksonRedisSerializer

  2. 使用StringRedisTemplate,写入Redis时,手动把读取到的JSON反序列化为对象。(节省内存)

    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    // JSON工具
    private static final ObjectMapper mapper = new ObjectMapper();
    @Test
    void testStringTemplate() throws JsonProcessingException {
    	//准备对象
        User user = new User("虎哥", 18);
        //手动序列化
        String json = mapper.writeValueAsString(user);
       //写入一条数据到redis
       stringRedisTemplate.opsForValue().set("user:200", json); 
    
       /读取数据
       String val = stringRedisTemplate.opsForValue().get("user:200");
       //反序列化
       User user1 = mapper.readValue(val, User.class);
       System.out.println("user1 = " + user1);
     }
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端面试题之【HTTP/HTML/浏览器】

1.说一下http与https http&#xff1a;超文本传输协议&#xff0c;https&#xff1a;超文本传输安全协议 区别&#xff1a; http传输数据是未加密的&#xff0c;是明文传输&#xff1b;https使用ssl协议对数据进行加密处理&#xff1b;https协议需要ca证书&#xff0c;费用高…

【VUE 嵌套路由】

目录 1. 嵌套路由 2. 通俗小结 1. 嵌套路由 要使用菜单显示出“点击不同的菜单项显示不同的内容”的效果&#xff0c;需要使用嵌套路由&#xff01; 因为&#xff0c;在当前设计中&#xff0c;App.vue是显示整个页面的入口&#xff0c;而App.vue就已经使用<router-view/…

应急物资仓库管理系统-3D可视化管理系统

1. 系统介绍 RFID智慧应急物资仓库可视化管理系统是杭州东识科技有限公司基于物联网RFID技术、云计算技术、3D可视化技术、数据采集技术等&#xff0c;专门为政府、军队等部门量身定制的一体化物资综合管理平台。 本系统包括&#xff1a;物资安全监控部分——提供对环境温湿度监…

[附源码]Python计算机毕业设计Django失物招领微信小程序论文

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Slowloris DoS攻击的原理与简单实现

前言 Slowloris 攻击是我在李华峰老师的书——《Metasploit Web 渗透测试实战》里面看的&#xff0c;感觉既简单又使用&#xff0c;现在这种攻击是很容易被防护的啦。不过我也不敢真刀实战的去试&#xff0c;只是拿个靶机玩玩罢了。 废话还是写在结语里面吧。&#xff08;划掉&…

Java 中重写了 equals 为什么还要重写 hashCode?

问题 不管是在书本或者是博客上&#xff0c;都会推荐我们在重写 equals 方法时重写 hashCode 方法。明明对象之间就是通过 equals 方法进行判断的&#xff0c;那么为什么非要写 hashCode 方法呢? equals 实验 创建一个 Teacher 类。方便起见&#xff0c;就一个 name 属性。…

1.1 异步相关概念:初步了解

1.进程和线程的概念 计算机有5大基本组成部分&#xff0c;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入和输出。运算器和控制器封装到一起&#xff0c;加上寄存器组和cpu内部总线构成中央处理器&#xff08;CPU&#xff09;。cpu的根本任务&#xff0c;就是执…

2022年跨境电商卖家如何在Facebook上做广告【完整指南】

关键词&#xff1a;跨境电商卖家、Facebook广告 了解如何在 Facebook 上做广告对于大多数跨境电商卖家来说是一项非常重要的技能&#xff0c;因为您在 Facebook 上做广告&#xff0c;您的广告可以覆盖21.7 亿人——换句话说&#xff0c;接近世界人口的 30%。此外&#xff0c;该…

Java项目:SSM物业缴费管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能&#xff1a; 管理员登录,管理员管理,住户管理,缴费列表,公告列表管理,用户反馈管理等功能。 用户角色包含以下功能&…

[附源码]计算机毕业设计失物招领微信小程序论文Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

keras-gpu安装

需要安装&#xff1a; TensorFlow 安装&#xff08;包含cudatoolkit、cuDNN&#xff09; HDF5 和 h5py (如果你需要将 Keras模型保存到磁盘&#xff0c;则需要这些) graphviz 和 pydot (用于绘制模型图的可视化工具) Keras 一、更新驱动 先升级显卡驱动&#xff1a;https://zh…

【软件测试】测试老鸟老张,我的梦想是什么?梦想还在吗?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 老张&#xff1a; 这…

QML + KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放)

前言 前面文章介绍过在QML中使用ListView实现TabBar标签拖拽交换位置效果&#xff08;文章在这里&#xff09; 先在此基础上升级一下&#xff0c;结合KDDockWidget做一个可浮动的窗口效果。 关于KDDockWidget的介绍&#xff0c;以前的文章有写过&#xff0c;可参考&#xff…

[附源码]Python计算机毕业设计SSM健身俱乐部管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

移动WEB开发之rem布局--rem适配方案

思考 1. 我们适配的目标是什么&#xff1f; 2. 怎么去达到这个目标的&#xff1f; 3. 在实际的开发当中使用&#xff1f; 答案 1. 让一些不能等比自适应的元素&#xff0c;达到当设备尺寸发生改变的时候&#xff0c;等比例适配当前设备。 2. 使用媒体查询根据不同设备按比例…

idea高级调试技巧

前言 对于一名开发者来说&#xff0c;找出并处理掉Bug是不可或缺的能力。能够熟练的调试程序将大大提升开发的效率。学好DeBug&#xff0c;再多Bug也不怕。Debug用来追踪代码的运行流程&#xff0c;通常在程序运行过程中出现异常&#xff0c;启用Debug模式可以分析定位异常发生…

chapter7——处理字节顺序

目录1.定义2.小端模式和大端模式的比较3.处理字节顺序不匹配的问题4.访问32位存储器5.处理字节顺序不匹配6.字节顺序中性代码7.字节顺序中性编码指南1.定义 字节顺序定义数据在计算机系统中的存储格式。它描述存储器中地址的最高有效位&#xff08;MSB&#xff09;和最低有效位…

基于百度地图的交通查询的毕业设计(android)

目 录 1 前言 1 1.1 背景 1 1.2 论文主要内容与结构 1 2 基础技术介绍&#xff08;一&#xff09; 2 2.1 Android概述 2 2.2 Android架构 2 2.3 Android应用程序类型分析 5 3 基础技术介绍&#xff08;二&#xff09; 6 3.1 地图简介 6 3.1.1 地图概念 6 3.1.2 构成…

力扣(LeetCode)97. 交错字符串(C++)

动态规划 状态转移方程 f[[i,j]f[i−1,j]∣∣f[i,j−1]f[[i,j] f[i-1,j]\ ||\ f[i,j-1]f[[i,j]f[i−1,j] ∣∣ f[i,j−1] &#xff0c;仅当最后一个字符匹配。 class Solution { public:bool isInterleave(string s1, string s2, string s3) {int n s1.size(),m s2.size();…

更够实现输入检验输入框

输入检验输入框 效果展示 概述 本文讲解如何书写&#xff0c;可以根据输入内容的在鼠标失去焦点的时候&#xff0c;进行检验的输入框。 构建HTML框架 <body><div class"register"><input type"password" class"ipt"><p…