redis学习
参照教程:黑马程序员
redis介绍
(来自黑马程序员笔记)
主要特点:
- 基于内存存储,读写性能高
- 适合存储热点数据(热点商品、资讯、新闻)
- 企业应用广泛
Redis是用C语言开发的一个开源的高性能键值对(key-value)
数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。
NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库。NoSql数据库并不是要取代关系型数据库,而是关系型数据库的补充。
关系型数据库(RDBMS):
- Mysql
- Oracle
- DB2
- SQLServer
非关系型数据库(NoSql):
- Redis
- Mongo db
- MemCached
redis安装
我使用的是Linux系统安装redis
redis中文网
官网下载压缩包拖入Xshell解压
安装redis环境:
1 | yum -y install gcc |
对redis进行编译
1 | 进入:cd redis-5.0.4 |
修改配置
- 改为后台启动
1 | vi redis.conf |
daemonize no 改成daemonize yes
启动redis
tip:
redis-server
和redis-cli
:
redis-server和redis-cli有什么区别
腾讯元宝如是说道:redis-server
和redis-cli
是Redis数据库管理系统中的两个重要组件,它们各自承担着不同的职责。以下是它们之间的主要区别:
redis-server
角色:
- redis-server是Redis数据库的服务器程序。
- 它负责处理客户端的连接请求、执行命令、管理数据存储以及维护Redis的内部状态。
功能:
- 启动和管理Redis实例。
- 加载和解析配置文件(如redis.conf),以确定Redis的各种设置(例如监听地址、端口、持久化策略等)。
- 监听指定的网络端口,等待并接受客户端的连接。
- 处理来自客户端的命令请求,并返回相应的结果。
- 实现数据的存储、检索和修改功能。
- 提供持久化机制,将数据保存到磁盘上,以防止数据丢失。
使用方式:
- 通常在后台运行,作为服务持续提供Redis服务。
- 可以通过命令行参数或配置文件来定制Redis的行为。
redis-cli
角色:
- redis-cli是Redis的命令行客户端工具。
- 它允许用户与Redis服务器进行交互,发送命令并查看结果。
功能:
- 提供一个简单的文本界面,让用户能够方便地输入Redis命令。
- 连接到指定的Redis服务器实例。
- 发送Redis命令并接收返回的结果。
- 支持多种交互模式,包括交互式模式和批处理模式。
- 可以用于执行常见的Redis操作,如设置键值对、获取数据、删除键等。
- 还提供了一些辅助功能,如查看服务器状态、执行脚本等。
使用方式:
直接在命令行中运行,通过输入命令与Redis服务器通信。
可以指定连接的服务器地址、端口和其他参数。
总结
redis-server是Redis的核心服务组件,负责处理所有的数据操作和管理任务。
redis-cli则是用户与Redis服务器之间的桥梁,提供了一个便捷的方式来执行命令和管理Redis实例。
简而言之,如果你想要启动和管理Redis服务,你需要使用redis-server;而如果你想要与Redis进行交互并执行命令,你需要使用redis-cli。
通过使用配置路径的方式启动redis
1 | redis-server /usr/local/redis-5.0.4/redis.conf |
redis-server和redis-server ./redis.conf有什么区别
redis-server
和 redis-server ./redis.conf
的主要区别在于它们的启动方式和配置来源
redis-server
:当你直接运行redis-server
命令时,Redis 会使用默认的配置文件(通常位于/etc/redis/redis.conf
)或者在其安装目录下的redis.conf
文件。这种方式启动的 Redis 实例将使用默认配置进行初始化。redis-server ./redis.conf
:当你运行redis-server ./redis.conf
命令时,Redis 会使用当前目录下的redis.conf
文件作为配置文件。这种方式启动的 Redis 实例将使用指定的配置文件进行初始化,覆盖默认配置。
总结一下,redis-server
使用默认配置文件启动 Redis 实例,而 redis-server ./redis.conf
使用指定的配置文件启动 Redis
实例。在实际应用中,你可以根据需要选择使用默认配置还是自定义配置来启动 Redis。
设置密码
参考文章:
Linux下安装Redis,及部分配置详情
密码验证的地方根据上述文章,我进行了一些修改: 因为我的系统提醒我:
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
所以删去了 redis-cli -h 127.0.0.1 -p 6379 -a ****
这一步
1 | a. 运行命令:redis-cli |
在Java中操作Redis——Spring Data Redis使用方式
介绍
(来自黑马程序员笔记)
Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在
Spring 项目中,可以使用Spring Data Redis来简化 Redis 操作。
网址:https://spring.io/projects/spring-data-redis
Spring Boot提供了对应的Starter,maven坐标:
1 |
|
Spring Data Redis中提供了一个高度封装的类:RedisTemplate,对相关api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下:
- ValueOperations:string数据操作
- SetOperations:set类型数据操作
- ZSetOperations:zset类型数据操作
- HashOperations:hash类型的数据操作
- ListOperations:list类型的数据操作
编写配置类,创建RedisTemplate对象
1 | package com.sky.config; |
解释说明:
当前配置类不是必须的,因为 Spring Boot 框架会自动装配 RedisTemplate 对象,但是默认的key序列化器为
JdkSerializationRedisSerializer,导致我们存到Redis中后的数据和原始数据有差别,故设置为
StringRedisSerializer序列化器。
从redisTemplate里面获取各种数据类型的操作
1 |
|