nodejs redis 过期时间_Redis 基本使用

 

本文介绍了关于 Redis 的基本使用,包括安装步骤、启动服务、nodejs项目安装使用、运行指令等、实例等

bbed511134bfedab43c62e4948205a2c.png

01

安装软件

1、Windows 安装

    * 官网下载: https://redis.io/download

    * 启动 redis: cmd 切换到 redis 目录下执行

redis-server.exe redis.windows.conf

5e55f452f46d113ba65d9db8c4e6a8ad.png

    * 命令行设置缓存 key value

# 打开命令行编辑(cmd 到 redis 目录下)redis-cli.exe -h 127.0.0.1 -p 6379redis-cli -h 127.0.0.1redis-cli# 输入指令set myKey abcget myKeykeys *del key

1c179c413719f724de777273624d9fe3.png

2、Mac OS 安装

    * 官网下载: https://redis.io/download

    * 安装

# 解压tar -zxvf redis-5.0.5.tar.gz# 拷贝的local目录下sudo cp -rf redis-5.0.5 /usr/local/# 进入相应目录下cd /usr/local/redis-5.0.5# 编译 - 时间有点长,可能要等几分钟sudo make test# 安装sudo make install# 建立相应目录sudo mkdir bin etc db# 拷贝启动文件sudo cp src/mkreleasehdr.sh src/redis-benchmark src/redis-check-rdb src/redis-cli src/redis-server bin/

        * 服务启动 redis-server

    * 结束服务: 关闭启动窗口,或者新窗口执行下面操作

redis-cli127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379> SHUTDOWNnot connected> exit

* 报错时,命令清理再编译:sudo make distclean && sudo make && sudo make test

02

判断服务器安装/启动

1、登录服务器,输入密码

ssh -p port name@ip

2、判断服务器安装: whereis

[root@localhost bin]# whereis redis-cliredis-cli: /usr/local/bin/redis-cli[root@localhost bin]# whereis redis-serverredis-server: /usr/local/bin/redis-server

3、判断服务器启动,可使用 ps 或者 netstat  查看

[root@localhost bin]# ps aux | grep redis-server[root@localhost bin]# netstat -tunple | grep 6379

4、设置 redis 开机启动

[root@localhost bin]# systemctl enable redis

5、查看所有开机启动项

[root@localhost bin]# systemctl list-unit-files |grep enabled

6、查看 redis.service 内容

[root@localhost bin]# locate redis.service

7、查看 redis-server 版本号

redis-server --version 或者 redis-server -v

[root@localhost bin]# redis-server --versionRedis server v=4.0.14 sha=00000000:0 malloc=libc bits=64 build=f73ec81c204283f3

8、查看 redis-cli 版本号

 redis-cli --version 或者 redis-cli -v

[root@localhost bin]# redis-cli -vredis-cli 4.0.14

9、命令行设置或查看 keys

# 查看 redis-cli 路径[root@localhost bin]# whereis redis-cli# 打开编辑功能[root@localhost bin]# /usr/local/bin/redis-cli# 输入指令127.0.0.1:6379> keys *1) "applicaton"

10、示例

b301a8346fe2d629f492a203d4aba6fd.png

03

Node项目安装

如 nodejs + eggjs 项目,可以安装 egg-redis:

       https://github.com/eggjs/egg-redis

1、引入 egg-redis 安装包

yarn add egg-redis

2、添加 plugin.js 配置

exports.redis = {    enable: true, // 是否开启    package: 'egg-redis',    env: ['release', 'prod'] // 配置开启的环境};

3、添加 config.default.js 配置

config.redis = {    client: {        port: 6379,        host: '127.0.0.1',        password: '',        db: 0    },}

4、添加缓存设置文件

    可以添加到 service/redis 目录结构中

'use strict';const Service = require('egg').Service;class RedisService extends Service {    /**     * 设置对应缓存     * @param {String} key 名称     * @param {*} value 数据     * @param {*} seconds 缓存时间     */    async set(key, value, seconds) {        const { redis } = this.app;        // 判断 Redis:关闭Redis,返回空        if (!redis) {            return;        }        value = JSON.stringify(value);        if (!seconds) {            await redis.set(key, value);        } else {            // 设置有效时间            await redis.set(key, value, 'EX', seconds);        }    }    /**     * 获取对应缓存     * @param {String} key 名称     */    async get(key) {        const { redis } = this.app;        // 判断 Redis:关闭Redis,返回空        if (!redis) {            return;        }                let data = await redis.get(key);        if (!data) return;        data = JSON.parse(data);        return data;    }    /**     * 删除一个(或多个)keys     * @param {Array} keys 需要删除的keys     */    async del(keys) {        const { redis } = this.app;        const data = await redis.del(...keys);        return data;    }    // 清空 redis    async flushall() {        const { redis } = this.app;        await redis.flushall();        return;    }}module.exports = RedisService;

5、使用

    预先判断缓存中是否存在需要的字段,如获取应用列表信息:

async demo() {    const {service} = this;    console.time(); // 开始计时    let data = await service.monitor.redis.get('key'); // 获取缓存    // 判断是否存在缓存    if (!data) {        data = await service.monitor.demo.getKeyData(); // 应用列表        service.monitor.redis.set('key', data); // 设置缓存    }    console.timeEnd(); //  打印时长    this.success({data});}

注意:可以在需要缓存的 key 值更新的地方使用 set。

04

Redis 命令

下表是我使用过的命令,还有很多数据类型,目前只用了字符串类型

命令行为返回值示例
set

设置存储在给定键中的值

ok

set(key, value)

get

获取存储在给定键中的值

value/null

get(key)

del

删除存储在给定键中的值

1/0

del(key)

setnx

设置 key value,设置不存在的key,,否则设置失败

1/0

setnx(key, value)

expire

设置一个 key 的过期的秒数

1/0

expire(key, seconds)

1、set 设置 key value

await redis.set(key, value, 'EX', seconds);

2、get 获取 key value

await redis.get(key);

3、del 删除一个或多个 keys

await redis.del(...keys);

4、flushall 清除所有 keys

await redis.flushall();

5、setnx 设置 redis 中不存在的 key

await redis.setnx(key, value);

6、expire 设置过期时间

await redis.expire(key, seconds);

以上内容均为个人总结,如有不对的地方欢迎指正

更多文章看这里哦!!!

* [wqjiao 个人博客](https://wqjiao.github.io)* [wqjiao 掘金文章](https://juejin.im/user/5a9c9998f265da239a5f459b)* [wqjiao GitHub](https://github.com/wqjiao)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值