当前位置: 首页 > news >正文

lanyun网站开发软文营销的定义

lanyun网站开发,软文营销的定义,百度引擎搜索引擎入口,设计制作小车配置环境 下载 Redis Windows 访问 https://github.com/microsoftarchive/redis/releases 选择版本进行下载 - 勾选 [配置到环境变量] - 无脑下一步并安装 命令行执行:redis-cli -v 查看已安装的 Redis 版本,能成功查看就表示安装成功啦~ Mac brew i…

配置环境

下载 Redis

Windows

访问 https://github.com/microsoftarchive/redis/releases 选择版本进行下载 - 勾选 [配置到环境变量] - 无脑下一步并安装

在这里插入图片描述

命令行执行:redis-cli -v 查看已安装的 Redis 版本,能成功查看就表示安装成功啦~


Mac

brew install redis # 安装 redis
brew services start redis # 启动 redis
brew services stop redis # 停止 redis
brew services restart redis # 重启 redis

启动 Redis

打开任务管理器,找到 Redis 服务,点击启动即可

在这里插入图片描述



配置 EggJS 项目

  1. 安装依赖
pnpm i egg-redis

  1. 配置插件
// config/plugin.js
exports.redis = {enable: true,package: 'egg-redis',
};
// config/config.default.js
exports.redis = {client: {port: 6379, // Redis porthost: '127.0.0.1', // Redis hostpassword: '',db: 0,},
};

  1. 扩展 helper
// app/extend/helper.js
module.exports = {// 生成 redis 锁的控制器; val 为随机数, 防止解锁时误删其他请求的锁redisLockController(key, val = Math.random(), ttl = 5 * 60) {const app = this.app;return {// 上锁async lock() {// 使用 set 命令上锁并设置过期时间, 保证原子性const lockResult = await app.redis.set(key,val,'EX',ttl,'NX');return lockResult === 'OK';},// 解锁async unlock() {// 使用 lua 脚本校验锁并解锁, 保证原子性const script = `if redis.call('get', KEYS[1]) == ARGV[1] thenreturn redis.call('del', KEYS[1])elsereturn 0end`;// 使用 eval 命令执行 lua 脚本const unlockResult = await app.redis.eval(script, 1, key, val);return unlockResult === 1;},};},
};

  1. 使用 redis 上锁
// app/controller/home.js
const { Controller } = require('egg');module.exports = class HomeController extends Controller {async index() {const { id } = this.ctx.query;const result = await this.service.home.index(id);this.ctx.body = result;}
};
// app/service/home.js
const { Service } = require('egg');module.exports = class HomeService extends Service {async index(id = 0) {// 从 header 中获取 region 参数const region = this.ctx.get('region') || 'default';// 生成锁的 keyconst lockKey = `lock:${region}:${id}`;// 获取锁的控制器const { lock, unlock } = this.ctx.helper.redisLockController(lockKey);// 上锁const lockResult = await lock();// 上锁失败if (!lockResult) return { code: 500, msg: 'lock failed' };// 上锁成功, 执行业务逻辑let result;try {result = await this.mockSql(id);} catch (err) {result = { code: 500, msg: err.message };}// 解锁await unlock();// 返回结果return result;}// 模拟数据库查询async mockSql(id) {// 2s 后返回结果return new Promise((resolve) => {setTimeout(() => {resolve({code: 200,msg: 'success',data: { id, desc: 'egg is very good', time: Date.now() },});}, 2000);});}
};



模拟抢锁

开两个浏览器访问 http://localhost:7001 即可模拟抢锁的场景


http://www.15wanjia.com/news/15107.html

相关文章:

  • 08影院wordpress主题电脑优化工具
  • msn网站制作百度站长管理平台
  • 弹幕网站用什么做it培训
  • 云服务器价格购买价格表西安seo网站优化
  • 怎么制作网站表白引擎搜索优化
  • 如何搭建网站的结构郑州网站优化排名
  • 描述对于营销型网站建设很重要飘红效果更佳焦作整站优化
  • 火锅料网站方案怎么做竞价托管推广代运营
  • 制作公司网页可以用网上图片吗厦门搜索引擎优化
  • 为网站开发在线生成个人网站
  • 百度网站验证怎么做域名停靠浏览器
  • 青岛模板建站多少钱互联网seo是什么意思
  • 网站如何换域名网站推广app下载
  • 网站建设技术指标营销培训课程有哪些
  • 网站做多久能盈利旺道seo网站优化大师
  • 为网站开发android客户端教育培训网站模板
  • 北京品牌型网站建设靠谱市场营销考试题目及答案2022
  • 技术支持 东莞网站建设传送带合肥网站维护公司
  • 做网站哪家靠谱今日头条极速版官网
  • 网站建设丶金手指下拉十五google关键词优化
  • 哈尔滨做网站哪家好关键词分析软件
  • 微信小程序游戏手游排行榜百度seo培训课程
  • 在线免费高清logo珠海网站seo
  • 物流网站seo网站优化详解
  • app优化是什么意思天津seo排名
  • 网站建设具体日程安排百度热搜大数据
  • 网站设计行业资讯百度指数的使用方法
  • 长城宽带做网站百度用户客服电话
  • 网站制作培训机构文案代写收费标准
  • 呼和浩特建站企业网站大全