Redis概述及安装
1|0Redis是什么
基于内存的key-value结构的非关系型数据库,远程字典服务
1|1特点
基于内存存储,读写性能高
适合存储热点数据(热点商品,资讯,新闻)
使用范围广
1|2能做什么
- 数据缓存
- 消息队列
- 注册中心
- 发布订阅
1|3Redis入门
关系型数据库(RDBMS):
- Mysql
- Oracle
- DB2
- SQLServer
非关系型数据库(NoSql):
- Redis
- Mongo db
- MemCached
1|4下载与安装
Redis安装包分为windows版和Linux版:
- Windows版下载地址:https://github.com/microsoftarchive/redis/releases
- Linux版下载地址: https://download.redis.io/releases/
下载后得到下面安装包:
在Linux系统安装Redis步骤:
-
将Redis安装包上传到Linux到soft目录
-
解压安装包,命令:tar -xvf redis-4.0.0.tar.gz -C /usr/local
-
安装Redis的依赖环境gcc,命令:yum install gcc-c++
-
进入/usr/local/redis-4.0.0,进行编译,命令:make
-
进入redis的src目录进行安装,命令:make install
-
进入/usr/local/redis-4.0.0 ,把redis.conf文件拷贝到src目录中 cp redis.conf src
-
修改redis.conf文件,需要修改的地方有:
-
修改redis.conf文件,让其在后台启动不要霸屏的方式启动, 将配置文件中的daemonize配置项改为yes,默认值为no。
-
reids默认是没有密码的,如果你需要有密码,将配置文件中的 # requirepass foobared 配置项取消注释,默认为注释状态。foobared为密码,可以根据情况自己指定。(选做)
-
redis的服务默认只是允许本机连接,其他机器默认情况是不被允许连接,如果允许其他机器也能连接linux的reids服务,注释掉 bind 127.0.0.1
protected-mode yes改成no 关闭保护模式
-
如果redis服务是后台启动 我们的关闭redis服务如下:
在src目录下 ./redis-cli shutdown
启动redis服务 在src目录下
./redis-server redis.conf
-
-
启动redis的服务, 使用 redis-server redis.conf
-
启动客户端去连接服务端测试: 启动客户端的方式:
- 方式一(没有密码方式): 在src目录中 ./redis-cli
- 方式二(如果存在密码情况): 在src目录中: ./redis-cli -h 127.0.0.1 -p 端口号 -a 密码
1|5启动和停止Redis
执行Redis服务启动脚本文件redis-server:
通过启动日志可以看到,Redis默认端口号为6379。
Ctrl + C停止Redis服务
通过redis-cli可以连接到本地的Redis服务,默认情况下不需要认证即可连接成功。
退出客户端可以输入exit或者quit命令。
2|0在Java中操作Redis
Redis 的 Java 客户端很多,官方推荐的有三种:
- Jedis
- Lettuce
- Redisson
Spring 对 Redis 客户端进行了整合,提供了 Spring Data Redis,在Spring Boot项目中还提供了对应的Starter,即 spring-boot-starter-data-redis。
Jedis
Jedis 是 Redis 的 Java 版本的客户端实现。
maven坐标:
使用 Jedis 操作 Redis 的步骤:
- 获取连接
- 执行操作
- 关闭连接
示例代码:
Spring Data Redis
介绍
Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在 Spring 项目中,可以使用Spring Data Redis来简化 Redis 操作。
网址:https://spring.io/projects/spring-data-redis
maven坐标:
Spring Boot提供了对应的Starter,maven坐标:
Spring Data Redis中提供了一个高度封装的类:RedisTemplate,针对 Jedis 客户端中大量api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下:
- ValueOperations:简单K-V操作
- SetOperations:set类型数据操作
- ZSetOperations:zset类型数据操作
- HashOperations:针对hash类型的数据操作
- ListOperations:针对list类型的数据操作
使用方式
环境搭建
第一步:创建maven项目springdataredis_demo,配置pom.xml文件
第二步:编写启动类
第三步:配置application.yml
解释说明:
spring.redis.database:指定使用Redis的哪个数据库,Redis服务启动后默认有16个数据库,编号分别是从0到15。
可以通过修改Redis配置文件来指定数据库的数量。
第四步:
springdata_redis默认帮我们创建的RedisTemplate对象是使用jdk的序列号器帮我们键与值存储到redis中,而jdk的序列号器对键与值是采用二进制的方式存储的,所以我们会看到乱码的情况。如果我们需要看得懂,那么需要修改redistemplate使用的序列号器才行。 提供配置类
添加依赖
解释说明:
当前配置类不是必须的,因为 Spring Boot 框架会自动装配 RedisTemplate 对象,但是默认的key序列化器为JdkSerializationRedisSerializer,导致我们存到Redis中后的数据和原始数据有差别
第五步:提供测试类
操作字符串类型数据
操作哈希类型数据
操作列表类型数据
操作集合类型数据
操作有序集合类型数据
通用操作
3|0Redis序列化
序列化的使用场合:
当我们把对象存放到硬盘或者把对象通过网络传输时就需要用到序列化
序列化: 实际上就是把对象的属性以及属性值转换成一个一个的字节
需要这个类实现Seniolizable接口
反序列化
把字节恢复成对象的过程 我们称之为反序列化
redis本身是一个基于内存的key-value结构的数据库,但是它在开发的时候也支持了数据的持久化,redis中的数据要可以保存到硬盘上。
我们把key和Value要存储在redis数据库中,说白了也是将Key value存储在硬盘上,我们其实是把key对应的对象 以及value对应的对象 存储在硬盘 说白了,sname 进行序列化之后存储到硬盘,张三 进行序列化之后存储到硬盘。默认情况下 我们key和value使用的序列化方式是jdk序列化方式
__EOF__
作 者:YXH
出 处:https://www.cnblogs.com/YxinHaaa/p/17573431.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了