Redis安装配置及基本使用(保姆级安装教程非常耐用)
Redis安装包:https://pan.baidu.com/s/1bAQnvTxcUw-owdWHQ2xBHg?pwd=wjl6
提取码:wjl6
Redis可视化工具安装包:https://pan.baidu.com/s/1Hi6daVeYOHThrDDlvtfkIQ?pwd=wjl6
提取码:wjl6
Redis 介绍
Redis(Remote Dictionary Server)是一个开源的高性能键值存储数据库,广泛用于缓存和数据存储。它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合、位图、超日志、地理空间索引等。Redis 的数据存储在内存中,使其具有极快的读写速度,并且可以将数据持久化到磁盘。
Redis 的主要特点包括:
- 高性能: Redis 能够处理每秒数百万的请求,读写延迟通常在微秒级别。
- 持久化: Redis 可以将数据持久化到磁盘,以防数据丢失。支持 RDB 快照和 AOF(Append Only File)持久化机制。
- 支持多种数据结构: 除了简单的键值对,Redis 还支持复杂的数据结构,如列表、集合和哈希等。
- 原子操作: Redis 提供对数据的原子操作,确保数据一致性。
- 主从复制: Redis 支持主从复制,允许数据在多个实例之间进行复制,以实现高可用性和负载均衡。
- 分布式: Redis Cluster 提供了自动分片和高可用性,使 Redis 可以在多个节点之间分布数据。
Redis 的优点
-
高性能: Redis 在内存中操作数据,读写速度极快,适合对性能要求高的应用场景。
-
丰富的数据结构: Redis 支持多种数据结构,开发者可以根据需求选择合适的数据类型,灵活性高。
-
持久化机制: Redis 提供多种持久化策略,可以满足不同的应用需求。
-
简单易用: Redis 的命令集简单易懂,开发者可以快速上手。
-
高可用性: 通过主从复制和 Redis Sentinel,Redis 能够实现高可用性和故障转移。
-
社区支持: Redis 拥有活跃的社区和丰富的生态系统,提供了大量的客户端库和工具。
Redis 的应用场景
-
缓存: Redis 常被用作缓存层,减少数据库的访问压力,提升应用的响应速度。例如,缓存用户会话、网页内容、数据库查询结果等。
-
实时数据分析: 由于其高性能,Redis 适合用于实时分析和监控系统,如实时统计、数据流处理等。
-
排行榜和计数器: Redis 的有序集合和原子操作使其非常适合用于实现排行榜、投票系统和计数器等功能。
-
消息队列: Redis 的列表数据结构可以用作简单的消息队列,支持发布/订阅模式,适用于任务调度和异步处理。
-
会话存储: Redis 常用于存储用户会话信息,支持快速读取和更新。
-
地理位置服务: Redis 提供的地理空间索引支持可以用于位置相关的应用,如查找附近的商家、用户位置等。
-
实时聊天系统: Redis 可以用于实现实时聊天应用的消息存储和分发。
Redis安装流程
首先下载我上面分享的redis安装包,双击打开点运行
之后点击Next
然后勾选用户协议 ,点击Next
接下来显示以下页面,选择你要安装的位置,注意文件夹名为英文,并且勾选 Add the Redis installation folder to the PATH environment variable.(自动添加环境变量)
这一步默认6379端口号即可
接下来,更改最大内存为500MB,点击Next
最后点击Install即可
安装完成之后等待即可,最后点击Finish
进入redis安装目录找到配置文件,注意是redis.windows-service.conf,不是redis.windows.conf,后者是以非系统服务方式启动程序使用的配置文件。右击记事本打开redis.windows-service.conf文件
在配置文件中,找到requirepass foobared字样,在其后面追加一行,输入requirepass 123456。这是访问Redis时所需的密码,一般测试情况下可以不用设定密码。不过,即使是作为本地访问,也建议设定一个密码。此处以简单的123456来演示,然后保存退出。
进入计算机服务中(右键此电脑-->管理-->服务和应用程序-->服务),再在右侧找到Redis名称的服务,查看启动情况。如未启动,则手动启动之。正常情况下,服务应该正常启动并运行了,但是因为前面修改过配置文件,需要重启服务,切记
测试一下redis能否正常工作。在安装redis的文件夹的地址栏输入cmd
输入redis-cli并回车(redis-cli是客户端程序)如图正常提示进入,并显示正确端口号,则表示服务已经启动。
使用服务前需要先通过密码验证。输入“auth 123456”并回车(123456是之前设定的密码)。返回提示OK表示验证通过。
然后再验证set和get。一切正常,就成功了!
Redis可视化工具
双击运行工具安装包,点击Next
点击I Agree
这里自定义安装路径,之后点击Install
最后等到安装完成即可,点击Finish
进入工具之后 连接到Redis服务器,name随便叫,host为127.0.0.1,密码是上面文件中我们设置的密码,点击第五步尝试连接出现以下提示就成功了!!!
显示以下页面就完全成功了
Redis在后端nodejs中的使用
依然是下载redis依赖,配置链接路径
const { createClient } = require('redis')
const client = createClient({
url: 'redis://:123456@127.0.0.1:6379'
})
client.connect().then(() => {
console.log('Redis已成功连接')
}).catch(err => { console.log('Redis连接失败:', err) })
module.exports = client
下面看一下简单的接口
var express = require('express');
var router = express.Router();
let client = require('../model/db');
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', { title: 'Express' });
});
// 添加用户数据
router.post('/add', async(req, res) => {
let userData = JSON.stringify(req.body);
await client.rPush('userData', userData)
res.send({
code: 200,
message: '添加成功',
});
});
// 获取用户数据
router.get('/get', async(req, res) => {
const data = await client.lRange('userData', 0, -1)
const users = data.map(user =>JSON.parse(user))
res.send({
code: 200,
data: users
})
});
router.delete('/delname',async(req,res)=>{
let {name} = req.query
console.log(name);
let data = await client.lRange('userData', 0, -1)
let users = data.map(user =>JSON.parse(user))
let index = users.findIndex(user=>user.name===name)
if (index === -1) {
return res.send({
code: 404,
message: '该用户不存在'
})
}
await client.lRem('userData', 2, JSON.stringify(users[index]))
res.send({
code: 200,
message: '删除成功'
})
})
module.exports = router;
在将数据存储到 Redis 之前,通常需要使用 JSON.stringify
将 JavaScript 对象转换为 JSON 字符串。原因如下:
-
数据格式: Redis 是键值存储系统,支持的值类型主要是字符串。通过
JSON.stringify
,可以将复杂的数据结构(如对象和数组)转换为字符串格式,以便存储。 -
保持数据结构: 使用 JSON 字符串可以在读取数据时恢复原始的数据结构。通过
JSON.parse
,可以将字符串转换回 JavaScript 对象。 -
兼容性: JSON 是一种轻量级的数据交换格式,广泛支持于各种编程语言。使用 JSON 格式可以确保数据在不同系统之间的兼容性。