问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Redis安装配置及基本使用教程

创作时间:
作者:
@小白创作中心

Redis安装配置及基本使用教程

引用
CSDN
1.
https://blog.csdn.net/m0_59365887/article/details/143592686

Redis介绍

Redis(Remote Dictionary Server)是一个开源的高性能键值存储数据库,广泛用于缓存和数据存储。它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合、位图、超日志、地理空间索引等。Redis 的数据存储在内存中,使其具有极快的读写速度,并且可以将数据持久化到磁盘。

Redis的主要特点包括:

  • 高性能: Redis 能够处理每秒数百万的请求,读写延迟通常在微秒级别。
  • 持久化: Redis 可以将数据持久化到磁盘,以防数据丢失。支持 RDB 快照和 AOF(Append Only File)持久化机制。
  • 支持多种数据结构: 除了简单的键值对,Redis 还支持复杂的数据结构,如列表、集合和哈希等。
  • 原子操作: Redis 提供对数据的原子操作,确保数据一致性。
  • 主从复制: Redis 支持主从复制,允许数据在多个实例之间进行复制,以实现高可用性和负载均衡。
  • 分布式: Redis Cluster 提供了自动分片和高可用性,使 Redis 可以在多个节点之间分布数据。

Redis的优点

  1. 高性能: Redis 在内存中操作数据,读写速度极快,适合对性能要求高的应用场景。
  2. 丰富的数据结构: Redis 支持多种数据结构,开发者可以根据需求选择合适的数据类型,灵活性高。
  3. 持久化机制: Redis 提供多种持久化策略,可以满足不同的应用需求。
  4. 简单易用: Redis 的命令集简单易懂,开发者可以快速上手。
  5. 高可用性: 通过主从复制和 Redis Sentinel,Redis 能够实现高可用性和故障转移。
  6. 社区支持: Redis 拥有活跃的社区和丰富的生态系统,提供了大量的客户端库和工具。

Redis的应用场景

  1. 缓存: Redis 常被用作缓存层,减少数据库的访问压力,提升应用的响应速度。例如,缓存用户会话、网页内容、数据库查询结果等。
  2. 实时数据分析: 由于其高性能,Redis 适合用于实时分析和监控系统,如实时统计、数据流处理等。
  3. 排行榜和计数器: Redis 的有序集合和原子操作使其非常适合用于实现排行榜、投票系统和计数器等功能。
  4. 消息队列: Redis 的列表数据结构可以用作简单的消息队列,支持发布/订阅模式,适用于任务调度和异步处理。
  5. 会话存储: Redis 常用于存储用户会话信息,支持快速读取和更新。
  6. 地理位置服务: Redis 提供的地理空间索引支持可以用于位置相关的应用,如查找附近的商家、用户位置等。
  7. 实时聊天系统: 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在后端Node.js中的使用

依然是下载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 字符串。原因如下:

  1. 数据格式: Redis 是键值存储系统,支持的值类型主要是字符串。通过 JSON.stringify,可以将复杂的数据结构(如对象和数组)转换为字符串格式,以便存储。
  2. 保持数据结构: 使用 JSON 字符串可以在读取数据时恢复原始的数据结构。通过 JSON.parse,可以将字符串转换回 JavaScript 对象。
  3. 兼容性: JSON 是一种轻量级的数据交换格式,广泛支持于各种编程语言。使用 JSON 格式可以确保数据在不同系统之间的兼容性。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号