• Redis读写分离版实例测评体验报告
    Redis读写分离版实例测评体验报告姓名:应宇昊群内昵称:映在天空中的宇宙
  • [问题求助] GaussDB(for Redis)测试时发现的两个bug
    1、增加节点,新节点密码不知道是什么,必须重置密码才能登陆2、删除节点,只删了前台的Proxy,而后台的server并没有删除。相关测试文章:《华为云GaussDB(for Redis)数据库——在线加减节点及扩容》https://www.modb.pro/db/42243
  • 体验官 | Redis读写分离实例体验及评测
    1. 资源创建    创建资源很方便:计费模式  包周期   按需两种,比较灵活,方便不同情况的购买。                              实例类型选择读写分离类型就可以创建读写分离的示例了,避免了繁琐的自己搭建,搭建读写分离门槛变低 。                              CPU架构方便有两种选择,X86计算,Arm计算,旁边就可以跳转到 https://support.huaweicloud.com/dcs_faq/dcs-faq-0515001.html帮助文档,我们可以根据文档选择适合自己的                             CPU架构。   公网访问是个很方便的功能,但是很遗憾,目前版本还不支持,希望尽快支持,因为很多时候,我们还是需要使用IDE更方便的来管理redis。2. 产品能力表现   Web GLI 页面太过于简单,输入一些常用命令,操作还是很不方便,建议优化一下,可视化程度更高一点,交互更友好一些,可以参考一些IDE。监控信息很全面,整个资源的监控清晰明了,有助于我们监控分析。可视化界面修改多项配置参数缓存分析清晰明了性能测试:redis-benchmark -h redis-74c803a-dcs-mbbt.dcs.huaweicloud.com -p 6379  -c 50 -n 10000redis-benchmark -h redis-74c803a-dcs-mbbt.dcs.huaweicloud.com -p 6379  -c 5000 -n 10000 redis-benchmark -h redis-74c803a-dcs-mbbt.dcs.huaweicloud.com -p 6379  -c 5000 -n 100000Error: 500 (first 450 elements)诊断能识别一些异常 影响性能的东西架构分析:   Redis读写分离结构主要分两种,星型复制和链路复制。   星型复制:所有节点跟主节点保持同步,优势很明显,链路比较短,同步快,缺点就是主节点比较消耗CPU资源,扩展比较困难,严重依赖主节点。   链路复制:主节点只需要同步给第一个节点,节点一级 一级的向后传递,优势是主节点节省资源,缺点就是后面的节点同步慢,中间节点。 阿里云使用的是链路复制,阿里云对binlog复制做了优化,进来减少链路复制的缺点,华为云使用的是星型复制,在CPU可以选择 x86,CPU性能上会比ARM强。 我们还是要根据自己的业务场景来选择不同的结构模式来满足我们的业务需求。3. 产品建议反馈   3.1.创建资源-参考一下阿里云创建资源页面:主要差别其实一眼就可以看出来,从各个字段 包括描述来说,阿里云的用户体验相对而言能更好一点,阿里云的通俗易懂,华为云的相对而言比较专业,普通用户不易于理解,描述比较晦涩难懂。其实很多专业的技术细节都可以隐藏起来,对于展示出来的信息 描述,可以用户体验好一点,描述 通俗易懂一些。4. 产品体验问题及意见建议等   4.1.Web GLI 页面太过于简单,输入一些常用命令,操作还是很不方便,建议优化一下,可视化程度更高一点,交互更友好一些,可以参考一些IDE。  4.2.其实很多专业的技术细节都可以隐藏起来,对于展示出来的信息 描述,可以用户体验好一点,描述 通俗易懂一些。 落        款: 姓       名:大象比字长 群内昵称:salad
  • 体验官 | Redis读写分离实例体验及评测
    Redis读写分离版实例测评体验报告已完成,在附件中,详情请见附件,谢谢。  落        款:  姓       名:刘佩 群内昵称:加油O幸福
  • 体验官 | Redis读写分离实例体验及评测 by suse-dev
    分布式缓存服务在高性能业务中扮演着非常重要的角色,核心是为了满足用户高并发及快速数据访问的业务诉求.分布式缓存云服务本应该就具有安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,兼容Redis和Memcached,提供单机、主备、集群等丰富的实例类型。对华为云分布式缓存服务进行了初步的体验,对华为云提供的分布式缓存服务的基础的性能进行了一些benchmark,在体验过程中遇到的一些问题进行了总结汇总。相关汇总放置附件中
  • Redis读写分离版实例测评体验报告
    Redis读写分离版实例测评体验报告已完成,在附件中,详情请见附件,谢谢。                                                                            落款:                                                                                姓       名:伍崇进                                                                                群内昵称:我就是我
  • (已结束)体验官有奖体验|Redis读写分离实例体验及评测
    感谢参与华为云《体验官有奖体验|Redis读写分离实例体验及评测》本期活动已与12月20日20:00结束获奖体验官名单公示获奖名单内的体验官可选实物或码豆奖励,选择奖励点→填写地址请戳我>>。填写截止时间为12月25日,如您没有填写,视为放弃奖励体验形式本次体验采用有奖征集体验评测报告的形式,从报名体验官中招募25人,体验产品并输出产品体验评测报告。我们会按照评测体验维度、深度、意见建议等方面,从中筛选出15份高质量体验报告,给予礼品奖励。中奖率超高哟~~☆奖品设置如下☆金牌测评体验报告奖:2名奖品:华为智选 海雀AI摄像头云台超清版1个或选40000码豆银牌测评体验报告奖:3名奖品:荣耀魔方蓝牙音箱1个或选20000码豆体验评测报告优秀参与奖:10名奖品:华为自拍杆1个或选10000码豆码豆有什么用?码豆为虚拟货币可用于在华为云码豆会员中心-兑换商城中进行实物/虚拟礼品的兑换(礼品会不定期更换)兑换礼品点击查看:华为云专属码豆商城>>> 体验评测报告内容可从以下几个维度进行:通过在华为云服务器+Redis读写分离实例上部署本帖附件Demo使用Redis读写分离实例,不局限此Demo体验评测;1.    资源创建 2. 产品能力表现 3. 产品建议反馈 4. 产品体验问题及意见建议等; 体验过程及评测报告中可参考的竞品阿里云Redis读写分离版实例 体验评测报告交稿时间:2020年12月20日 20:00前,请报名评测的体验官将评体验测报告发帖上传到华为云社区云中间件交流论坛中。并同步微信告知小助手(微信:hwpaas)。12月25日 18:00前,群内公布获奖体验官名单及奖品,奖品会在公布后7个工作日内寄出。体验报告发帖地址:云中间件社区版块https://bbs.huaweicloud.com/forum/forum-645-1.html注:请在落款标注姓名和群内昵称,以便评奖时使用。 ☆华为云分布式缓存服务Redis产品介绍☆点击链接可进入产品页面:https://www.huaweicloud.com/product/dcs.html ☆如何报名华为云产品体验官☆请先填写报名表单,报名成为华为云Redis产品体验官。审核成功后,小助手会添加您的微信邀您进入华为云Redis产品体验官群成为华为云产品体验官后续产品体验通知会在体验官群内发布~  扫描二维码,或点击这里填写报名表
  • [体验官] 【开发者最佳实践挑战】第三关体验分享
    【开发者最佳实践挑战】第3关任务:使用Redis实现排行榜功能在网页和APP中常常需要用到榜单的功能,对某个key-value的列表进行降序显示。当操作和查询并发大的时候,使用传统数据库就会遇到性能瓶颈,造成较大的时延。使用分布式缓存服务(DCS)的Redis版本,可以实现一个商品热销排行榜的功能。它的优势在于:  数据保存在缓存中,读写速度非常快。  提供字符串(String)、链表(List)、集合(Set)、哈希(Hash)等多种数据结构类型的存储。 (1)领取实践资源:1元ECS+Redis资源。点击这里领取资源或复制打开链接购买:http://suo.im/5FyHMG  (华南广州)(2)最佳实践指南:点击查看实践指南>> 注:登录ECS可以有多种方式,Windows推荐使用MSTSC方式远程链接桌面>>(3)视频操作演示:点击查看实践视频演示>>昨天晚上下班之前,买了资源,当时也没细看(惨痛的实践教训证明,好多坑都是被自己没细看挖出来的~),今天上班来继续购买下面的DCS资源,还顺手就买到了北京4区域,买完了才发现,ECS在广州,,删掉重新在广州区域买DCS,才发现昨天买的包里已经有DCS了。登录到ECS中,按照手册安装eclipse,网页访问不了。首先想到是防火墙的问题,因为已经远程上来了么,网络肯定是通的了。修改防火墙后,果然网络通了。下载eclipse的安装包,很慢,预计要30分钟+,回头看看能不能加点带宽,1M的是小了点,2M就开始收费了,算了,我一边做实验一边记录,也不是很急哈!到饭点了,先写到这。。。。。身体最重要~eclipse安装一路畅通,卡在redis客户端的引用上面了。参照了手册,视频,百度,各种查询搜索,还是不行,最后还是在module-info那里,添加了包的声明搞定了。之后就是网络排障了!报redis后台的timeout错误,这个错误就很模糊,到底是通了没连接呢,还是压根就没通呢?网络故障,咱是强项啊~就是做这个的查吧,cmd先ping一下,不通,有可能这个地址没有配置,也有可能是不让ping,换个地址继续测试,用99的地址试一下,eclipse运行后提示不能连接到备用端有门!基本上成功90%了,。这证明已经成功探测到redis后台了,只是地址不对!继续用242的主用侧地址测试,成功!用对外的业务地址145测试,也是通的!最后证明还是地址写错了,145写成了245,改过来就通了。这个实验很简单,只是简单的使用redis服务,发现可以分析大key了,又可以捎带手赚码豆了!开心!
  • [技术干货] 如何应对Spark-Redis行海量数据插入、查询作业时碰到的问题
     摘要:由于redis是基于内存的数据库,稳定性并不是很高,尤其是standalone模式下的redis。于是工作中在使用Spark-Redis时也会碰到很多问题,尤其是执行海量数据插入与查询的场景中。海量数据查询Redis是基于内存读取的数据库,相比其它的数据库,Redis的读取速度会更快。但是当我们要查询上千万条的海量数据时,即使是Redis也需要花费较长时间。这时候如果我们想要终止select作业的执行,我们希望的是所有的running task立即killed。Spark是有作业调度机制的。SparkContext是Spark的入口,相当于应用程序的main函数。SparkContext中的cancelJobGroup函数可以取消正在运行的job。/**  * Cancel active jobs for the specified group. See `org.apache.spark.SparkContext.setJobGroup`  * for more information.  */ def cancelJobGroup(groupId: String) {   assertNotStopped()   dagScheduler.cancelJobGroup(groupId) }按理说取消job之后,job下的所有task应该也终止。而且当我们取消select作业时,executor会throw TaskKilledException,而这个时候负责task作业的TaskContext在捕获到该异常之后,会执行killTaskIfInterrupted。 // If this task has been killed before we deserialized it, let's quit now. Otherwise, // continue executing the task. val killReason = reasonIfKilled if (killReason.isDefined) {   // Throw an exception rather than returning, because returning within a try{} block   // causes a NonLocalReturnControl exception to be thrown. The NonLocalReturnControl   // exception will be caught by the catch block, leading to an incorrect ExceptionFailure   // for the task.   throw new TaskKilledException(killReason.get) }/** * If the task is interrupted, throws TaskKilledException with the reason for the interrupt. */ private[spark] def killTaskIfInterrupted(): Unit但是Spark-Redis中还是会出现终止作业但是task仍然running。因为task的计算逻辑最终是在RedisRDD中实现的,RedisRDD的compute会从Jedis中取获取keys。所以说要解决这个问题,应该在RedisRDD中取消正在running的task。这里有两种方法:方法一:参考Spark的JDBCRDD,定义close(),结合InterruptibleIterator。def close() {   if (closed) return   try {     if (null != rs) {       rs.close()     }   } catch {     case e: Exception => logWarning("Exception closing resultset", e)   }   try {     if (null != stmt) {       stmt.close()     }   } catch {     case e: Exception => logWarning("Exception closing statement", e)   }   try {     if (null != conn) {       if (!conn.isClosed && !conn.getAutoCommit) {         try {           conn.commit()         } catch {           case NonFatal(e) => logWarning("Exception committing transaction", e)         }       }       conn.close()     }     logInfo("closed connection")   } catch {     case e: Exception => logWarning("Exception closing connection", e)   }   closed = true }  context.addTaskCompletionListener{ context => close() } CompletionIterator[InternalRow, Iterator[InternalRow]](   new InterruptibleIterator(context, rowsIterator), close())方法二:异步线程执行compute,主线程中判断task isInterruptedtry{   val thread = new Thread() {     override def run(): Unit = {       try {          keys = doCall       } catch {         case e =>           logWarning(s"execute http require failed.")       }       isRequestFinished = true     }   }    // control the http request for quite if user interrupt the job   thread.start()   while (!context.isInterrupted() && !isRequestFinished) {     Thread.sleep(GetKeysWaitInterval)   }   if (context.isInterrupted() && !isRequestFinished) {     logInfo(s"try to kill task ${context.getKillReason()}")     context.killTaskIfInterrupted()   }   thread.join()   CompletionIterator[T, Iterator[T]](     new InterruptibleIterator(context, keys), close)我们可以异步线程来执行compute,然后在另外的线程中判断是否task isInterrupted,如果是的话就执行TaskContext的killTaskIfInterrupted。防止killTaskIfInterrupted无法杀掉task,再结合InterruptibleIterator:一种迭代器,以提供任务终止功能。通过检查[TaskContext]中的中断标志来工作。海量数据插入我们都已经redis的数据是保存在内存中的。当然Redis也支持持久化,可以将数据备份到硬盘中。当插入海量数据时,如果Redis的内存不够的话,很显然会丢失部分数据。这里让使用者困惑的点在于: 当Redis已使用内存大于最大可用内存时,Redis会报错:command not allowed when used memory > ‘maxmemory’。但是当insert job的数据大于Redis的可用内存时,部分数据丢失了,并且还没有任何报错。因为不管是Jedis客户端还是Redis服务器,当插入数据时内存不够,不会插入成功,但也不会返回任何response。所以目前能想到的解决办法就是当insert数据丢失时,扩大Redis内存。总结Spark-Redis是一个应用还不是很广泛的开源项目,不像Spark JDBC那样已经商业化。所以Spark-Redis还是存在很多问题。相信随着commiter的努力,Spark-Redis也会越来越强大。
  • [技术干货] [GaussDB for Redis]Info命令使用简介
    GaussDB for Redis提供Info命令查询系统内部的一些统计信息,使用方法为:通过redis-cli登录proxy,执行如下命令即可。info Latency cmd: 打印某个cmd的执行信息,包括执行次数,时间。支持的cmd参数有:“all”,“get”,“lindex”,“lpush”,“sadd”,“set”,“spop”,“xadd”,“xread”,“zadd”,“zrem”info ServerLatency serverName [cmd]: 打印特定server的命令统计信息info SystemResource: 打印系统级参数,内存使用量,cpu使用等info stats: 打印服务的状态,包括接受的连接数,总请求数,流量等info servers: 打印各个server(shard)的信息,包括name,请求数等info LatencyMonitor: 执行监控命令的执行信息info route: 打印路由信息info proxy | server: 打印proxy参数信息,包括version,name等info [all]: 打印上述3,4,5,6,8的信息
  • [中间件] Redis中间件的安装
    ARM架构系统源码编译安装Rdis一、环境信息:系统版本:Centos7.6二、编译和安装Redis步骤如下:执行如下命令,获取Redis源码。      wget http://download.redis.io/releases/redis-4.0.9.tar.gz执行如下命令,解压包。      tar -zxvf redis-4.0.9.tar.gz执行如下命令,进入deps目录。      cd redis/deps执行如下命令,编译Redis依赖库。       make -j4 hiredis lua jemalloc linenoise依次执行如下命令,编译Redis。      cd ..      make -j4      make install三、配置和运行Redis执行如下命令,建立redis配置文件。       cp redis.conf /usr/local/etc/执行如下命令,配置redis为后台启动,将daemonize no 改成daemonize yes。      vim /usr/local/etc/redis.conf 设置Redis开机启动。    a.         执行如下命令,将Redis启动脚本放置/etc/init.d/目录下,并命名为redis。    cp redis/utils/redis_init_script /etc/init.d/redis    b.         执行如下命令,修改脚本内容。    vim /etc/init.d/redis    修改:CONF=/usr/local/etc/redis.conf设置服务开启启动。       chkconfig redis on执行如下命令,启动redis-server。      service redis start
  • [技术干货] 2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只能访问100次,超过限制返回异常,写出实
    2020-10-29:使用redis实现分布式限流组件,要求高并发场景同一IP一分钟内只能访问100次,超过限制返回异常,写出实现思路或伪代码均可。#福大大架构师每日一题#
  • [Java] redis 淘汰策略
    redis 淘汰策略volatile-lru:从已设置过期时间的数据集(server. db[i]. expires)中挑选最近最少使用的数据淘汰。volatile-ttl:从已设置过期时间的数据集(server. db[i]. expires)中挑选将要过期的数据淘汰。volatile-random:从已设置过期时间的数据集(server. db[i]. expires)中任意选择数据淘汰。allkeys-lru:从数据集(server. db[i]. dict)中挑选最近最少使用的数据淘汰。allkeys-random:从数据集(server. db[i]. dict)中任意选择数据淘汰。no-enviction(驱逐):禁止驱逐数据。
  • [Java] redis 实现分布式锁
    redis 实现分布式锁Redis 分布式锁其实就是在系统里面占一个“坑”,其他程序也要占“坑”的时候,占用成功了就可以继续执行,失败了就只能放弃或稍后重试。占坑一般使用 setnx(set if not exists)指令,只允许被一个程序占有,使用完调用 del 释放锁。
  • [热门活动] (已结束)[看直播,送福利]#DevRun开发者沙龙# 当Redis遇见计算存储分离,回帖互动报名赢豪礼!!!
    【直播时间】DevRun开发者沙龙直播时间:2020年10月27日 20:00~21:00【直播主题】当Redis遇见计算存储分离【活动介绍】本期DevRun开发者沙龙,将由华为云数据库技术专家文龙&生态总监张一一,为大家深度解析当Redis遇上计算存储分离的奥秘。凡在本主题帖中留言、参与直播互动或者论坛互动的用户均可参与抽奖,蓝牙音箱,移动电源,数据线,华为云定制T-shirt等多重好礼等你来拿~【报名入口】点击下面链接或扫描微信二维码报名参加直播。报名链接:https://bbs.huaweicloud.com/signup/715fb0ade3f541928a677733c1e93cbd?utm_source=webinar&utm_medium=signup&utm_campaign=signup 报名二维码:【直播地址】官方直播间地址:https://vhall.huawei.com/fe/watch/6308官方直播间二维码:虎牙:https://www.huya.com/huaweiyun斗鱼:https://www.douyu.com/huaweiyunB站:https://live.bilibili.com/21945422【互动送好礼】(互动时间截至10月30日24:00)满足下面的一个条件即可参与抽奖:1、报名参加直播。2、在本主题帖中跟帖盖楼,留言“ GaussDB(for Redis)真牛”;3、在本主题帖中跟帖,留言“提问:xxx”、“建议:xxx”或“反馈:xxx”等;4、直播观后感;5、在数据库论坛发帖互动(问题求助、博文分享、问题解答、产品体验等与数据库有关的话题)。【获奖规则】1、互动幸运奖:     奖品:海纳斯小风扇         评价规则:完成报名的直播用户和参与本主题留言用户中,随机抽取若干名。2、优秀参与奖:     奖品:手机懒人支架         评奖规则:活动结束后,在本主题的留言中,选取最优秀的回帖若干名。3、同一个用户只能参与一次评选,同一ID用户不可重复中奖。4、为保证公平公正,抽奖结果将在活动结束后7个工作日内本主题帖中发布,请报名和留言的伙伴关注社区内容。【资料下载】10.27#DevRun开发者沙龙#当Redis遇上计算存储分离-见附件 【获奖名单】 幸运奖:海纳斯小风扇dadizhishufranco52576云之声小而suncker知恩呐魂归提克里特yzq13470495155互动奖:手机懒人支架神的孩子全跳舞linghz666hw96958yzq18941596181帕加尼风之子8866小强鼓掌Johnson远鹏张辉恭喜以上用户获得本期DevRun开发者沙龙直播社群互动奖,请点击下面链接或扫二维码填写您的收件信息链接:https://devcloud.huaweicloud.com/expert/open-assessment/qtn?id=ab9c14f37a7d42f3b6708fc33ac1f7fd 二维码:获奖用户已私信通知,请您注意查看,及时填写信息,我们会尽快发出奖品。如您未在11月12日24:00之前提交获奖信息,视为您自动放弃。望周知。