redis学习笔记

mac2024-05-13  33

Redis

NoSQL:

Not Only SQL 不仅仅是SQL,通常指的是非关系型的数据库。MySQL和Oracle都是属于关系型数据库。

特点 关系型数据库 存储介质 以文件的方式保存在硬盘中 优点 数据是可以永久保存 缺点 1)数据添加有校验的过程 2)查询的速度比较慢 3)DML的操作需要使用到事务 以上这些限制会导致速度很慢

非关系型数据库

通常只是存储在内存中,服务器关闭数据可能会部分或全部丢失 存取速度非常快 数据不能及时保存,可能会导致数据丢失

非关系数据库存储什么样的数据, 数据是放在内存中,主要的目的是为了提高查询的速度,放在redis中的数据是经常要查询的数据,而且它是第二份,第一份数据还是放在mysql数据库中,相当于一个缓存

解决 对数据库高并发读写的需求 对海量数据的高效率存储和访问的需求 高可扩展性和高可用性的需求


⚾Redis的5种数据类型⚾ redis是一种高级的key-value的存储系统,其中value支持五种数据类型: Redis支持的键值数据类型 string 字符串类型 hash 表类型,类似于map,是又键和值组成 list 列表类型,有序,可重复 set 集合类型,无序,不可重复 zset 有序集合类型


💮字符串类型string💮 常用命令

🔺set 键 值 向redis数据库中添加1个字符串类型的键和值,返回OK表示添加成功。同名的会替换 🔺get 键 从数据库中取出一个指定键的值,如果有返回值,如果没有返回nil 🔺del 键 删除指定的键和值,如果删除成功,返回删除的个数。否则返回0


🍣哈希类型hash🍣 🔼hset 键 字段 值 向指定的键中添加一对hash类型的字段名和值 🔼hget 键 字段 取出指定键的指定字段的值 🔼hmset 键 字段 值 字段 值 mulitple,一次向某个键中设置多个字段名和值 🔼hmget 键 字段 字段 一次从指定的键中得到多个字段的值 🔼hdel 键 字段 字段 删除一个键中的一个或多个字段 🔼hgetall 键 得到某个键所有的字段值


🥔列表类型list🥔 🔼lpush 键 元素 元素 left push 在列表的左边向指定的键中添加列表元素,如果该键并不存在,Redis将为该键创建一个新的链表,如果这个键已经存在,则是向list添加元素。 🔼rpush 键 元素 元素 right push在列表的右边向指定的键中添加列表元素 lpop 键 left pop 从指定键中的左边弹出一个元素,列表中的元素就删除了。 🔼rpop 键 right pop从指定键的右边弹出一个元素,列表中的元素就删除了。 🔼lrange 键 开始 结束 从指定键的列表中取出指定范围的元素列表,从左边数起从0开始,从右边数起从-1开始。如果要取整个列表,开始是0,结束是-1 🔼llen 键 得到指定列表的长度


🧀集合类型set🧀 🔼sadd 键 元素 元素 向set集合中添加1个或多个元素 🔼smembers 键 查询指定的集合中所有的元素 🔼sismember 键 元素 判断指定的元素是否在某个集合中,如果存在返回1,否则返回0 🔼srem 键 元素 元素 remove 删除指定的一个或多个元素


🍠Redis的通用命令🍠 🔼keys 匹配字符 查询当前数据库中有哪些键 * 匹配多个字符 ? 匹配1个字符 🔼del 键1 键2 可以删除任意键,可以一次删除多个键 🔼exists 键 是否存在指定的键 🔼type 键 判断指定的键它的值是什么类型,如:string, hash, list, set, none 🔼select 数据库编号 选择指定的数据库,0~15 🔼move 键 数据库编号 将某个键移动到另一个数据库中,如果另一个数据库中有同名的键,则移动失败


Redis的持久化

因为Redis中的数据都是写在内存中的,如果将内存中的数据写到硬盘的文件上,称为持久化 Redis持久化的两种方式: **1)RDB格式:**Redis DataBase,每过一段时间将内存中的数据写到硬盘上,是redis默认的持久化方式 save <时间间隔> <修改键数> 在指定的时间间隔内,修改了多少个键,则进行持久化的操作

2)AOF格式:Append Only File,以日志的方式记录服务器上的每个操作,当服务器重启的时候,将日志中操作还原到内存中

🍢开启AOF持久化 AOF默认是关闭的,首先需要开启AOF模式。 appendonly no/yes 如果要开启,设置为yes。如果设置成yes,就会在硬盘上生成一文本文件 生成文件:appendonly.aof 关键字 持久化时机 解释 appendfsync everysec 每秒同步 appendfsync always 每修改同步 appendfsync no 不同步



🔴JedisPoolConfig配置类🔴 🔺JedisPoolConfig() 通过构造方法创建一个连接池配置对象 🔺void setMaxTotal() 设置连接池中最大连接数

🔺void setMaxWaitMillis() 设置连接池中得到连接的最长等待时间

💗JedisPool连接池类 💗 JedisPool(配置对象,服务器名,端口号) 通过构造方法创建连接池 参数1:上面配置对象 参数2:服务器名或IP地址 参数3:端口号6379 🔺Jedis getResource() 从连接池中得到一个连接对象

🔺void close() 关闭连接池,通常不关闭。

🧡java.util.ResourceBundle类🧡 🔺static ResourceBundle getBundle(“配置文件基名”) 文件名只要写主文件名即可,没有扩展名。 创建一个ResourceBundle对象 🔺String getString(“键名”) 通过左边键名得到右边的值

最新回复(0)