本文分享自华为云社区《云主机安装Redis并模拟电商平台秒杀抢购场景》,作者:开发者空间小蜜蜂。

1.1 案例介绍

Redis 是一个高性能的key-value数据库。Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。因此Redis常用于缓存系统和队列系统。

本案例将指导开发者如何在云主机中安装和配置Redis,如何在Java项目中使用Jedis对接Redis服务器实现缓存功能并且使用CodeArts IDE模拟运行电商秒杀抢购场景。

1.2 免费领取云主机

如您还没有云主机,可点击链接,领取专属云主机后进行操作。

如您已领取云主机,可直接开始实验。

1.3 实验流程

  1. 在云主机上安装Redis并设置密码;

  2. 下载示例代码到云主机;

  3. 使用CodeArts IDE打开示例代码工程并修改Redis配置;

  4. 在CodeArts IDE上运行模拟测试文件查看结果。

1.4 实验资源

合计:0元

1.5 在云主机上安装Redis

进入云主机后,点击左面菜单的“终端”按钮,打开命令行工具。

在命令行中输入命令“sudo apt-get install redis-server”安装redis。

输入命令“sudo systemctl status redis-server” 确认redis已经安装并且服务正在运行。

确认安装好以后,键盘输入“ctrl+c”退出查看状态,接下来登录redis并测试数据的保存和获取,输入命令“redis-cli”登录到redis控制台,由于没有设置密码,所以可以直接登录。

登录后,使用set <key> <value>和get <key>命令实现数据的保存和获取,先输入“get city”查看city的值。

由于没有保存city的值所以是nil,现在输入命令“set city beijing”保存数据。

接下来再使用“get city”来查看city的值。

现在通过city这个key可以获取到beijing这个value值。

1.6 修改Redis配置,配置密码

安装好redis后,需要给redis服务器设置密码,先找到redis的配置文件,按照上面方式安装的redis,配置文件路径为/etc/redis/redis.conf,使用命令“sudo vim /etc/redis/redis.conf”打开并编辑配置文件,并找到“requirepass”这一行,把前面的注释符号“#”删除,并将“foobared”改成想要设置的密码。

然后输入“:wq”命令保存文件,接下来使用命令“sudo systemctl restart redis-server”重启redis。

然后我们在使用命令“redis-cli”登录到redis控制台,并使用“get city”获取数据发现报错,提示我们认证失败。

因为我们已经设置了登录密码,所以现在需要使用密码登录,先输入“ctrl+c”退出控制台,再输入如下命令“redis-cli -h localhost -p 6379 -a <你的密码>”登录,再使用“get city”,这次可以获取到数据。

1.7 下载示例代码

打开云主机的火狐浏览器,地址栏输入:https://codelabs.developer.huaweicloud.com/codelabs/samples/dac4adfa38db4e9d98734b1e5edebb5f/view-code/e95253901fca11ea8b68fa163e6e3ea0

打开示例代码页面,登录后点击下载按钮。

找到下载的代码压缩包,解压缩到当前目录。

打开云主机的CodeArts IDE,用IDE打开工程,选择项目代码。

打开工程后,稍等片刻,等待IDE加载java相关工具和项目适配。

1.8 修改代码对接Redis

打开“src\main\java\com\huaweicloud\dcs\DistributedLock.java”文件,修改HOST、PORT以及redis密码等配置信息:

  • HOST改为127.0.0.1

  • PORT改为6379,

  • 下面密码改成步骤2.2设置的密码即可

1.9 使用CodeArts IDE的调试功能模拟秒杀场景

首先添加IDE的运行配置,打开右上角配置的下拉菜单,点击“编辑配置”。

在弹出框内点击左上角的“+”添加配置项。

在新的菜单中选择“Java”,在展开的菜单中选择“Launch Current File”,点击“确定”。

接着就可以在菜单中选到新配置。

打开项目测试运行文件“CaseTest.java”,运行配置选择“Launch Current File”,点击右面的运行按钮,开始模拟测试。

可以在下面的控制台看到运行结果,实验结束。

云主机安装Redis,基于CodeArts模拟电商平台秒杀抢购的更多相关文章

  1. Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战

    Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台-  什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...

  2. Linux云主机安装JDK,配置hadoop的详细方式

    云主机我使用的是青云的,还有好多其他品牌,比如阿里云 unitedstack 等等. 注册完青云后,会有试用券发到账户,可以利用此券试用其服务. 1 首先创建好一个主机,按照提示选择好系统,创建好一个 ...

  3. Ubuntu腾讯云主机安装分布式memcache服务器,C#中连接云主机进行存储的示例

    Ubuntu腾讯云主机安装分布式memcache服务器,C#中连接云主机进行存储的示例(github代码:https://github.com/qq719862911/MemcacheTestDemo ...

  4. 【基于微信小程序的社区电商平台】Alpha迭代心得

    项目团队:小豆芽 开发周期:11.5-12.2(Alpha版本) 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决问题:当前电商平台卖家买家角 ...

  5. 【基于微信小程序的社区电商平台】需求分析心得——小豆芽

    一.项目内容 基于微信小程序,做一个社区电商平台,抓住社区电商的特点,做出特色,与微信集成,实现商品的个性化发布,以及个性化营销. 个性化发布:用户可以在应用上直接发布自己的商品,通过搜索心愿单可以查 ...

  6. 39、生鲜电商平台-redis缓存在商品中的设计与架构

    说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc ...

  7. Java生鲜电商平台-redis缓存在商品中的设计与架构

    Java生鲜电商平台-redis缓存在商品中的设计与架构 说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而 ...

  8. 谈B2B电商平台与大数据

    数据为王,服务为本——谈B2B电商平台与大数据 2013-06-27 11:10:41 作者:B2B行业资讯 标签:                             大数据           ...

  9. Java开源生鲜电商平台-监控模块的设计与架构(源码可下载)

    Java开源生鲜电商平台-监控模块的设计与架构(源码可下载) 说明:Java开源生鲜电商平台-监控模块的设计与架构,我们谈到监控,一般设计到两个方面的内容: 1. 服务器本身的监控.(比如:linux ...

  10. Java生鲜电商平台-高可用微服务系统如何设计?

    Java生鲜电商平台-高可用微服务系统如何设计? 说明:Java生鲜电商平台高可用架构往往有以下的要求: 高可用.这类的系统往往需要保持一定的 SLA,7*24 时不间断运行不代表完全不挂,而是有一定 ...

随机推荐

  1. Python 项目配置管理框架技术选型

    一.背景介绍 在实际生产项目中,不同环境(如开发.测试.生产环境)常有不同配置需求,如数据库链接等.我们期望一份代码无需改动,仅通过单一配置变量调整就能适配和使用多个环境,实现 "一份代码, ...

  2. 更新iManager离线镜像包方法

    例如将iserver_gisapplication_mapping_10_1_0.tar镜像更新到iManager仓库中 步骤一.将镜像导入本地镜像仓库 docker load -i iserver_ ...

  3. 自定义 AuthenticationProvider ,UserDetailsService的实现类@Autowired 为null

    项目场景: 整合spring security OAuth2自定义AuthenticationProvider 登录认证 签发token 问题描述: 在自定义 AuthenticationProvid ...

  4. Java以封装对象的方式读取CSV文件存储数据库

    依赖 <!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv --> <dependency& ...

  5. 6款支持C#语言的AI辅助编程工具,开发效率提升利器!

    前言 在这个AI迅速发展的阶段,涌现出了一大批好用的AI辅助编程工具.AI辅助编程工具能够提高开发效率.改善代码质量.降低bug率,是现代软件开发过程中的重要助手.今天大姚给大家分享6款AI辅助编程工 ...

  6. dotnet Core 静态方法和构造方法

    // 静态方法: // 特点:1.生命周期一旦创建-应用结束 才会结束 2.全局的 3.效率高(放在内存中) // 用户:用户登录,系统配置信息,系统设置,SQLHelper // 注意:静态的东西创 ...

  7. 云原生周刊:Kubernetes v1.31 发布

    开源项目推荐 Kardinal Kardinal 是一个用于在共享 Kubernetes 集群中创建超轻量级临时开发环境的框架. Anteon Anteon(以前称为 Ddosify)是一个开源的.基 ...

  8. Unity 华为快游戏JS桥接 实现写日志等功能

    之前接入微信小游戏本身代码js桥接比较完善,抖音小游戏有缺少但也没缺的这么多,华为这边的API,大残啊!官方转换插件Github仓库上一次提交在3月份.(截至现在)API给的很简略,接入js代码那里说 ...

  9. python reqeusts 请求时headers指定content length后 请求不响应

    解释: HTTP头部中的Content-Length字段表示请求体的大小,用字节来表示.当你在使用Python的requests库进行请求时,如果你手动设置了Content-Length,但实际发送的 ...

  10. OpenGL with GLFW GLAD and CMAKE

    0. 前言 首先,无论是在youtube还是网站上,许多OpenGL的环境配置都是在VS studio里配置的,个人比较喜欢使用VS code,以及Cmake. 下文给出了一个Cmake版本关于 GL ...