redis学习总结

本期是本人学习redis的总结,同时更偏底层原理 基础命令语法见官网

  1. redis的持久化模式
  2. redis的key的过期时间
  3. redis的redis.conf配置文件
  4. redis的redis.io官网
  5. redis的redis.io官网

认识NoSQL

redis和mysql都是nosql,但是mysql是关系型数据库,redis是非关系型数据库

NoSQL SQL
数据结构 非结构化 结构化
数据关联 不关联 关联
查询方式 非SQL SQL查询
事务特征 BASE ACID
存储方式 内存 磁盘
扩展性 水平(分布式) 垂直(主从)
使用场景 数据结构不固定,对一致性安全性要求不高,对性能要求高 数据结构固定,对数据安全性一致性有要求

redis特征 键值型:value支持多种不同数据结构,功能丰富 单线程,每个命令具备原子性(redis6.0多线程仅在网络请求处理这方面) 低延迟,速度快(内存中,IO多路复用,良好代码) 支持数据持久化 支持主从集群,分片集群 支持多语言客户端

安装

redis数据结构介绍

dfae9481743288588cea40a6b8beb8f7.png

string

2024-11-18-125709.png 2024-11-18-125756.png

string类型,字符串类型,是redis最简单的存储类型其value是字符串,不过根据字符串的格式不同,又可分为3类 string:普通字符串 int:整数类型,可以做自增自减 float:浮点类型,可以做自增,自减 不管哪种底层都是字节数组形式存储,知识编码方式不同,字符串类型最大空间不超过512M 2024-11-18-125453.png 待续。。

如果value是一个Java对象,可以将对象序列化为json字符串存储

hash

2024-11-18-130113.png 2024-11-18-130119.png hash类型,哈希表,key-value,value是map,key是字符串,value是字符串,可以做增删改查,可以做key的模糊查询, 2024-11-18-131344.png

2024-11-18-130245.png

list

2024-11-18-130427.png

list可以实现常用的数据结构,相比java有更大的优势, java实现的数据结构只能在进程内部实现,jvm 假设有3个web应用共享同一个数据结构比如栈,无法用java实现,需要设置同步一致性的方案,redis就可以直接共享,能够分布式场景下的数据 结构。 在线并发的情况下,如果使用java的list,那么在web应用A和web应用B同时操作list的时候,就会产生并发问题, 2024-11-18-130514.png