egg.js redis缓存的简单简单应用(存储和获取)

引入插件

npm i egg-redis --save

config/plugin.js文件中配置插件

'use strict';

module.exports = {
  redis: {
    enable: true,
    package: 'egg-redis',
  },
};

config/config.default.js文件中配置redis参数

注:这里直接配置多库模式,并给不同的库定义别名,方便使用——redis单机模式可用,如果是集群模式,则老老实实的配置一个就行,具体参照egg-redis集群模式配置

/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  config.redis = {
    clients: {
      user: { // user可以替换为自己想要的
        port: 6379,
        host: '127.0.0.1',
        password: '',
        db: 0, // 单机模式的默认库
      },
      other: {
        port: 6379,
        host: '127.0.0.1',
        password: '',
        db: 1,
      },
    },
  };


  return {
    ...config,
  };
};

redis-service封装文件的配置 app/service/cache/redis.js

'use strict';

const BaseService = require('../core/base'); // 标注1:BaseService基类文件根据自己的

const dbConfig = [ 'user', 'other' ]; // 标注2:配置文件中的名称,便于读取

/**
 * redis类
 */
class RedisService extends BaseService { // 标注1:BaseService基类文件根据自己的


  /**
   * redis数据存储,所有数据均存储为序列化json字符串
   * @param {*} key 键名
   * @param {*} val 键值
   * @param {*} expir 有效期
   * @param {*} db 配置库名 ,从dbConfig中进行取值
   */
  async set(key, val, expir = 0, db = 0) {

    const { redis } = this.app;
    const dbRedis = redis.clients.get(dbConfig[db]);

    if (expir === 0) {
      return await dbRedis.set(key, JSON.stringify(val));
    }
    return await dbRedis.set(key, JSON.stringify(val), 'EX', expir);

  }

  /**
   * 获取缓存的值
   * @param {*} key 键名
   * @param {*} db 库编号
   */
  async get(key, db = 0) {

    const { redis } = this.app;
    const dbRedis = await redis.clients.get(dbConfig[db]).get(key);

    return JSON.parse(dbRedis);

  }
}

module.exports = RedisService;

egg.js中进行调用数据

'use strict';

class HomeController {

  async redisCeshi() {
    const { ctx } = this;

    const rs = await ctx.service.cache.redis.set('ceshi', 'sadas', 60, 0); // 存储

    const rsN = await ctx.service.cache.redis.get('ceshi', 0); // 获取
 
    ctx.body = '操作成功';

  }
}

module.exports = HomeController;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是对这三个实验的总结: 1. Spring Boot 整合 Redis 的基本步骤: Spring Boot 提供了对 Redis 的自动配置支持,可以通过配置文件来配置 Redis 连接参数,然后通过@Autowired注解注入 RedisTemplate 来使用 Redis。Spring Boot 整合 Redis 的基本步骤如下: 1)在pom.xml文件中添加 redis 依赖:spring-boot-starter-data-redis。 2)在 application.properties 文件中添加 Redis 连接参数配置,例如: spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= 3)在 Java 代码中使用 RedisTemplate 操作 Redis,例如: @Autowired private RedisTemplate<String, Object> redisTemplate; ValueOperations<String, Object> operations = redisTemplate.opsForValue(); operations.set("key", "value"); Object value = operations.get("key"); 2. Redis 第三方技术的应用: 除了 Redis 本身提供的数据结构和操作命令,还有许多第三方技术可以应用Redis 中,例如: 1)Redisson:基于 Redis 的分布式 Java 对象和服务框架,提供了分布式锁、分布式集合等功能。 2)Lettuce:高性能的 Redis 客户端,提供了异步、响应式等多种操作方式,支持 Redis Sentinel 和 Redis Cluster。 3)Jedis:Redis 的 Java 客户端库,提供了 Redis 的基本操作命令。 4)Spring Data Redis:Spring 提供的 Redis 访问框架,提供了对 Redis 的基本操作和缓存支持。 3. 基于注解的 Redis 缓存实现: Spring Boot 提供了基于注解的 Redis 缓存实现,可以将方法的返回值缓存Redis 中,下次调用该方法时,如果缓存中存在对应的数据,则直接返回缓存数据,不再执行方法体逻辑。基于注解的 Redis 缓存实现的基本步骤如下: 1)在 pom.xml 文件中添加 Redis 和 Cache 依赖:spring-boot-starter-data-redis、spring-boot-starter-cache。 2)在 Java 代码中添加 @EnableCaching 注解启用缓存功能。 3)在方法上添加 @Cacheable 注解指定方法返回值需要缓存Redis 中,例如: @Cacheable(value = "userCache", key = "#id") public User getUserById(String id) { return userDao.getUserById(id); } 4)在 application.properties 文件中配置 Redis 连接参数和缓存配置,例如: spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= spring.cache.type=redis 通过使用基于注解的 Redis 缓存实现,可以提高应用程序的性能和响应速度,减少对数据库的访问,提高系统的并发能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值