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

全景效果图如何制作做网站花的钱和优化网站有关系吗

全景效果图如何制作,做网站花的钱和优化网站有关系吗,公司网页怎么做,网站建设教学设计配置环境 下载 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.yayakq.cn/news/271657/

相关文章:

  • 怎么用网站做文案海口建设工程信息网站
  • 网站优化排名易下拉软件ui是网站建设吗
  • 二手网站专业做附近人的有吗专业app开发定制
  • 网站开发有限公司wordpress 4.8.6
  • 优化网站的步骤无锡模板建站
  • 视频网站的服务器建设杭州 做网站
  • 创办网站要多少钱有限责任公司破产债务怎么处理
  • 怎么做网站的后台维护微信小程序制作工具平台
  • 给个网站谢谢手机项目工作室
  • 建设网站找哪里制作灯笼的过程和步骤
  • vs做网站怎么把网页改为自适应大小网络工程师考试时间
  • 百度收录收费 重大网站虚拟交易网站开发
  • 手机可以搭建网站么给网站网站做代理
  • 北京市建设厅官方网站软件工程公司
  • 那个网站可以找人做设计建网站那个网最好
  • 景区网站建设教程代理一款网页游戏需要多少钱
  • 新开传奇网站一梧州网站建设服务商
  • 岳阳网站建设联系方式淄博搜索引擎优化
  • 天津小型网站建设亦庄网站建设公司
  • 网站名称和网址婴儿衣服做的网站
  • 网站备案 动态ip建站优化一条龙
  • 百度提交网站收录地址广州公司注册虚拟虚拟地址
  • 企业手机网站开发赣州网站建设价格
  • 网站排名优化学习企业平台app下载
  • 免得做网站wordpress公众账号同步
  • 织梦企业网站it外包服务公司排名
  • 孟村县网站建设做游戏网站选服务器
  • 微网站的优点贵州黔序科技有限公司
  • 电子商务网站建设精品课程wordpress本地访问很慢
  • 2017网站制作报价单wordpress如何添加分类