• [分享交流] 你有一份Redis运维秘籍,请查收!
    先给大家讲一个基本知识点:数据库分类大致分为两类,关系型数据库和非关系型数据库。如果详细区分的话,还可以继续分下去。Redis不仅仅是缓存数据库面试的时候,很多人会问,Redis和memcahce的区别?memcache是一个纯缓存的键值数据库,而Redis是一个非关系型的数据库。两者的差异较大,却仍然大部分的人问二者的区别?因为很多人对Redis的应用,主要是和memcache一样,作为键值缓存数据库来用的。要知道,Redis不仅仅是缓存数据库,接下来,我们要深入Redis的应用场景,探寻它能为我们来解决什么样的问题。6大Redis应用场景1.缓存缓存肯定是大家应用场景最多的一个方向,几乎现在所有的中大型网站,都用到了缓存。合理的使用缓存不但能提高网页的访问速度,也能够降低后端数据库的压力。根据数据类型和实际使用情况,设置灵活的键值过期策略,又可以保障数据的有效性,所以用在缓存的场合非常多。2.计数器好多不熟悉业务或者开发的运维同学可能会问,计数器究竟是什么?我们可以通过我们实际的例子来说明,比如博主写了一篇博文,有多少人来浏览,51CTO都会有记录。那么这个记录怎么来做,每次浏览的话,这个记录都会+1 ,当浏览人数太多的时候,或者文章基数较大的时候,每次都去数据库来操作读写这个数据,肯定对后端数据库会有较大的压力。如果我们使用Redis的incr来实现这个功能,在内存中来计数,不但性能好,还可以减轻后端数据库的压力。所以是Redis!3.排行榜比如音乐或者某比赛排行榜,我们可以使用音乐名作为元素,使用播放次数作为分值。如果使用Redis的zadd来实现这个功能,使用zrevrange 来按照分值获取前10名或者50名的歌曲,或者获取歌曲排名,都是操作比较容易的,试想一下这种范围取值,如果使用Mysql来操作,一般会全表扫描,对I/O、数据库都是压力,所以是Redis。4.定位功能(3.2开始支持)Redis的 GEO特性,我们可以通过提前输入具体的地理位置信息,经纬度一些主要内容,在使用时,可以快读定位到APP使用者的位置,以及位置之间的距离等。5.简单的消息系统在日常的应用开发中,消息队列的使用还是比较常见的,Redis也有阻塞队列的功能。能够让程序在执行时被另一个程序添加到队列。6.交友我们可以存储好友的信息,比如爱好、兴趣等,通过使用Set集合的差查找爱好不同,或者爱好相同的点,增加交友匹配度等。当然,Redis的实际应用还远不止这些,既然这个数据库可以在我们实际的应用中,解决如此多的痛点问题,也有如此多的应用场景,那么肯定使用的公司一定比较多,为了提高我们自身的能力,或者竞争力,能够更好的解决或者运维好这一款数据库,我当然需要深入的去学习。Redis最显著的优势1.速度快Redis的开发基于C语言实现,网络上使用epoll解决高并发的问题,单线程又避免不必要的上下文切换。C语言和贴近系统,数据又放在内存中。所以速度肯定快。2.支持多种数据类型Redis不仅仅是key - value的存在,还可以支持LIst、String、Hash、Set、Zset 数据类型,可以满足我们大部分的需求。通过这个图呢,我们大致介绍了Redis的功能、场景、优点等信息。那么既然Redis在我们工作中,有这么多的地方可以用到,我们更应该需要深入的去学习和了解,方便我们在以后的工作中,更加的得心应手。基于以上的考虑,所以我讲解内容选择的时候: 所以是Redis。接住这份Redis运维秘籍1.总结知识点我们通过专栏的学习,可以看到Redis在学习过程中重要的一些知识点,而不是通篇的按照Redis的官方文档来教科书式的宣读,我们会把工作中常用的进行知识点的总结,只讲干货,不凑篇幅。2.理论+实践鲁迅先生说:“实践是检验真理的唯一标准”!(鲁迅先生表示没说过,哈哈!不知道谁的名言的时候,都是鲁迅先生的。),我们不但对底层知识、原理进行讲解和总结,也同时进行实战的操作,通过实际操作来验证这些理论,可以加深印象,也更方便我们的理解。3.经验总结与分享我们将在实战和优化中,讲解博主实际在运用过程中使用的遇到的一些“坑”。满满的坑,当我们从坑里爬出来的时候,我们就是强者。我们提前总结了这些坑,可以帮助大家建立在我们的经验之上,少走或者不走弯路。我们已经在坑里搭好“电梯”,大家可以比较省力的看到坑里的风景,又不用吃力。这也是我们总结和分享的目的。运维或者对Redis感兴趣的小伙伴们,来入坑吧,欢迎你们。我将会带领你们从这里坚强的走过,变成强者!哈哈!------------------------------------本文转自one叶孤舟博客51CTO博客如需转载,请联系作者授权原文链接:https://blog.51cto.com/14236481/2362954
  • [技术干货] Redis5.0:现公测全免费,点击就送,注册账号,即开即用
    华为云分布式缓存服务Redis,是华为云服务的一款核心产品。分布式缓存Redis是一款内存数据库服务,基于双机热备的高可用架构,提供单机、主从、集群等丰富类型的缓存类型。现推出最新版本Redis5.0,公测阶段,全程免费使用,点击分布式缓存服务Redis就送,在华为云服务官网注册账号,即开即用。 接下来,小编教大家如何获得这个免费公测。1.       注册华为云服务账号首先登陆华为云服务的官网,在页面的右上角点击注册,完成所需要的信息即可完成注册https://reg.huaweicloud.com/registerui/public/custom/registercontrast.html?__adhoc_split_id__=21356a67-a260-8f5e-ece7-d6b376665bbd&locale=zh-cn#/registercontrast 注册需要填的信息非常简单,只需要填写手机号和验证码,加上账号密码就可以了  2.       申请公测注册好了账号以后,我们就可以直接登陆华为云官网,在官网顶部中间区域,有个搜索引擎,输入Redis,即可弹出分布式缓存服务Redis,点击进入分布式缓存购买窗口,点击Redis公测权限按钮,即可进入公测申请页面 在申请公测页面填上联系电话等基本信息,即可获得公测资格,同时提醒各位朋友,别忘了在《公测试用服务协议》勾选同意哦。华为云分布式缓存服务Redis5.0公测资格,现阶段,申请秒通过,在您完成公测申请之后,进入分布式缓存服务Redis点击立即使用,进入购买界面,点击右上角购买缓存实例,如下在购买页面选择,按需付费,版本号选择5.0.2,即可立即体验免费公测好了,以上就是小编给大家介绍的华为云分布式缓存Redis5.0,公测免费的获取方式。希望对您有用哦  
  • 【直播已结束.云视界】Redis 5.0之Stream案例应用解读(1/11周五 16:00-17:00)
    12月17日,华为云在DCS2.0的基础上,快人一步,抢先推出了新的Redis 5.0产品,这是一个崭新的突破。目前国内在缓存领域的发展普遍停留在Redis4.0阶段,华为云率先发布了Redis5.0,全面展现了华为云在业界缓存领域持续创新的实力。华为云分布式缓存Redis5.0携Stream而来,以更快、更潮的特性及更优秀的内核,释放更强大的商业价值。华为云Redis是什么?如果用两个字来形容的话,非“快”和“稳”莫属!华为云Redis的实测性能相比开源提升300%,生产环境单核QPS达到25万+水平。简单来说就是,1个实例顶3个,用户开支大大减少。与此同时,华为云Redis还通过了最严苛的电信级测试,实现全球商用。▶观看直播
  • [问题求助] 求助:DCS-redis的持久化机制是怎样的?
    分布式缓存服务redis,写缓存和持久化到文件是事务级的吗?会不会出现写缓存成功,但持久化失败的情况?
  • [介绍/入门] AOS编排语言系列教程(十):创建分布式缓存Redis
    【摘要】 分布式缓存服务(Distributed Cache Service,简称DCS),用于提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,兼容Redis和Memcached,提供单机、主备、集群等丰富的实例类型,满足用户高并发及快速数据访问的业务诉求。本文中模板在创建安全组的模板中引入分布式缓存Redis的内容。分布式缓存服务(Distributed Cache Service,简称DCS),用于提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,兼容Redis和Memcached,提供单机、主备、集群等丰富的实例类型,满足用户高并发及快速数据访问的业务诉求。下面模板在创建安全组的模板中引入分布式缓存Redis的内容。tosca_definitions_version: huaweicloud_tosca_version_1_0inputs:  myredis_password:    description: 分布式缓存实例的登录密码node_templates:  myvpc:    type: HuaweiCloud.VPC.VPC    properties:      name: my-vpc      cidr: '192.168.0.0/16'  mysubnet:    type: HuaweiCloud.VPC.Subnet    properties:      name: my-subnet      cidr: '192.168.1.0/24'      gateway: 192.168.1.1      vpcId:        get_reference: myvpc      dhcpEnable: true    requirements:      - vpcId:          node: myvpc  myecs:    type: HuaweiCloud.ECS.CloudServer    properties:      name: my-ecs      instances: 1      imageId: a3934478-bfeb-4a02-b257-9089779f0380      flavor: c1.medium      vpcId:        get_reference: myvpc      availabilityZone: cn-south-1a      nics:        - subnetId:            get_reference: mysubnet      rootVolume:        volumeType: SATA        size: 40      securityGroups:        - id:            get_reference: mysg    requirements:      - vpcId:          node: myvpc      - securityGroups.id:          node: mysg      - nics.subnetId:          node: mysubnet  mysg:    type: HuaweiCloud.VPC.SecurityGroup    properties:      name: my-sg    requirements:      - vpcId:          node: myvpc  mysgrule:    type: HuaweiCloud.VPC.SecurityGroupRule    properties:      direction: ingress      securityGroupId:        get_reference: mysg      ethertype: IPv4      maxPort: 5444      minPort: 5443      protocol: TCP    requirements:      - securityGroupId:          node: mysg  myredis:    type: HuaweiCloud.DCS.Redis    properties:      capacity: 2      securityGroupId:        get_reference: mysg      instanceMode: single      subnetId:        get_reference: mysubnet      password:        get_input: myredis_password      vpcId:        get_reference: myvpc    requirements:      - subnetId:          node: mysubnet      - securityGroupId:          node: mysg      - vpcId:          node: myvpc模板中有如下几个参数:1.         capacity:分布式缓存实例的容量,默认值为2。2.         securityGroupId:分布式缓存实例使用的安全组ID。3.         instanceMode:分布式缓存实例的类型,可填写single、HA或cluster。4.         subnetId:分布式缓存实例的子网ID。5.         password:分布式缓存实例的登录密码,建议定义为get_input方式获取,由用户在创建堆栈时输入,以保证安全性,避免明文密码。关于inputs的用法,将在后面章节介绍。6.         vpcId:分布式缓存实例所属的虚拟私有云ID。分布式缓存创建成功:
  • DBA·王的Redis优化历程
    【摘要】 华为云分布式缓存服务Redis提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,且实例类型丰富,可满足用户高并发及快速数据访问的业务诉求。新一代分布式缓存服务Redis可实现实例8秒创建、单节点性能提升300%、可以G单位进行弹性扩展、提供可视化WebCli访问Redis。
  • [热门活动] 【免费赠书】华为云发布新一代缓存Redis,留言评论领福利!
    9月14日,华为EBG中国区行业云拓展部部长胡维琦在大会现场进行了“做有信仰的云,在创新的道路上加速奔跑”的主题演讲,发布了华为云全新产品:新一代分布式缓存Redis。华为云结合自身优势以及多年的实践经验,在缓存技术领域不断探索和追求,为用户提供高可靠、高性能、企业级的云缓存服务,帮助企业应用快速上云,从容面对数字时代的转型和挑战。现在,只要点击《华为云发布新一代缓存Redis》,免费体验分布式缓存服务Redis,在文章中留言说出你的使用心得,(截至9月21日0点)点赞数超过10的前三名可获得《Redis开发与运维》技术书籍一本呦!扫一扫,在微信中打开文章:
  • [介绍/入门] DCS2.0的WebCli上线了,快来体验吧
    华为云DCS Console链接:https://www.huaweicloud.com/product/dcs.html?infodocsq直接在DCS Console连接redis实例,不用配置redis客户端了。废话不多说,先睹为快~~~1、创建一个DCS2.0缓存实例。2、进入WebCli登录页面。3、输入密码,然后就可以试试执行Redis命令啦。
  • [技术干货] redis(三)redis命令之keys介绍
    keys redis本质上一个key-value 数据库,所以我们首先来看看他的key。首先key也是字符串类型,但是key中不能包括边界字符。由于key不是binary safe的字符串,所以像"my key"和"mykey\n"这样包含空格和换行的key是不允许的。在redis内部并不限制使用binary字符,这是redis协议限制的。"\r\n"在协议格式中会作为特殊字符。redis 1.2以后的协议中部分命令已经开始使用新的协议格式了(比如MSET)。总之目前还是把包含边界字符当成非法的key吧,免得被bug纠缠。另外关于key的一个格式约定介绍下,object-type:id:field。比如user:1000:password,blog:xxidxx:title,还有key的长度最好不要太长。道理很明显占内存啊,而且查找时候相对短key也更慢。不过也不推荐过短的key,比如u:1000:pwd,这样的。显然没上面的user:1000:password可读性好。 exits key:测试指定key是否存在,返回1表示存在,0不存在 del key1 key2 ....keyN:删除给定key,返回删除key的数目,0表示给定key都不存在type key type key:返回给定key的value类型。返回none 表示不存在,key,string字符类型,list 链表类型set 无序集合类型... keys pattern:返回匹配指定模式的所有key,下面给个例子 randomkey:返回从当前数据库中随机选择的一个key,如果当前数据库是空的,返回空串 rename oldkey newkey:原子的重命名一个key,如果newkey存在,将会被覆盖,返回1表示成功,0失败。可能是oldkey不存在或者和newkey相同 renamenx oldkey newkey:同上,但是如果newkey存在返回失败 dbsize:返回当前数据库的key数量 expire key seconds:为key指定过期时间,单位是秒。返回1成功,0表示key已经设置过过期时间或者不存在 ttl key: 返回设置过过期时间的key的剩余过期秒数-1表示key不存在或者没有设置过过期时间 select db-index:通过索引选择数据库,默认连接的数据库所有是0,默认数据库数是16个。返回1表示成功,0失败 move key db-index:将key从当前数据库移动到指定数据库。返回1成功。0 如果key不存在,或者已经在指定数据库中 flushdb 删除当前数据库中所有key,此方法不会失败。慎用!! flushall 删除所有数据库中的所有key,此方法不会失败。一定慎用!!! 示例代码后续更新,敬请期待。。。。。。 系列文章: redis(一)安装和配置java客户端 https://forum.huaweicloud.com/thread-8621-1-1.html redis(二) redis之事物 https://forum.huaweicloud.com/forum-565-50-1.html
  • [教程] DCS如何配合Spring_Session做Session共享?
    本帖最后由 husterindg 于 2018-5-10 17:17 编辑DCS的Redis缓存实例可以配合Spring_Session进行Session共享。出于安全考虑,DCS暂不支持客户端发起的CONFIG命令,因此需要按如下步骤进行操作: [*]通过管理控制台修改缓存实例的配置参数notify-keyspace-event,将值指定为“Egx”。 [*]在Spring框架的XML配置文件中,增加如下: static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/> [*]修改Spring相关代码,通过启用ConfigureRedisAction.NO_OP这个bean组件,禁止通过客户端调用CONFIG命令,避免报错。@Beanpublic static ConfigureRedisAction configureRedisAction() { return ConfigureRedisAction.NO_OP;} 更多说明,可参考Spring官方文档。
  • redis(一)安装和配置java客户端
    下载地址:http://redis.googlecode.com/files/redis-2.0.4.tar.gz 2.0 目前是最新稳定版可以在linux下运行如下命令进行安装 15083 make完后redis-2.0.4目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli 启动redis服务: 1.默认方式启动命令: $./redis-server 注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动. 2.配置文件方式启动命令: $ ./redis-server redis.conf redis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了. 如: 15084 3.java客户端配置: 客户端jar包地址 http://cloud.github.com/downloads/alphazero/jredis/jredis-1.0-rc2.jar 下载后引入jar包到工程,maven项目可以将jar包添加到本地仓库,将jar包添加到maven仓库的命令可自行百度,添加完后在pom文件中引入依赖即可。 java代码示例: package jredisStudy; import org.jredis.*; import org.jredis.ri.alphazero.JRedisClient; public class RedisTest { public static void main(String[] args) { try { JRedis jr = new JRedisClient("192.168.56.55",6379); //redis服务地址和端口号 String key = "mKey"; jr.set(key, "hello,redis!"); String v = new String(jr.get(key)); String k2 = "count"; jr.incr(k2); jr.incr(k2); System.out.println(v); System.out.println(new String(jr.get(k2))); } catch (Exception e) { // TODO: handle exception } } }
  • [技术干货] redis(二) redis之事物
    本帖最后由 guangfu007 于 2018-5-31 19:25 编辑redis对事务的支持目前还比较简单。redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会增加其他client的命令。由于redis是单线程来处理所有client的请求的所以做到这点是很容易的。 事务的执行 一般情况下redis在接受到一个client发来的命令后会立即处理并返回处理结果,但是当一个client在一个连接中发出multi命令后,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中。当从此连接受到exec命令后,redis会顺序的执行队列中的所有命令。并将所有命令的运行结果打包到一起返回给client.然后此连接就结束事务上下文。如: 14951 我们可以看到incr a ,incr b命令发出后并没执行而是被放到了队列中。调用exec后俩个命令被连续的执行,最后返回的是两条命令执行后的结果。 事务的取消 我们可以调用discard命令来取消一个事务。接着上面例子 14952 可以发现这次incr a incr b都没被执行。discard命令其实就是清空事务的命令队列并退出事务上下文。虽说redis事务在本质上也相当于序列化隔离级别的了,但是由于事务上下文的命令只排队并不立即执行,所以事务中的写操作不能依赖事务中的读操作结果。 事务的缺陷 redis的事务实现是如此简单,当然会存在一些问题。 第一个问题是redis只能保证事务的每个命令连续执行,但是如果事务中的一个命令失败了,并不回滚其他命令,比如使用的命令类型不匹配。 14954 可以看到虽然incr b失败了,但是其他两个命令还是执行了。 另一个十分罕见的问题是,当事务的执行过程中,如果redis意外的挂了。很遗憾只有部分命令执行了,后面的也就被丢弃了。当然如果我们使用append-only file方式持久化,redis会用单个write操作写入整个事务内容。即是是这种方式还是有可能只部分写入了事务到磁盘。发生部分写入事务的情况下,redis重启时会检测到这种情况,然后失败退出。可以使用redis-check-aof工具进行修复,修复会删除部分写入的事务内容。修复完后就能够重新启动了。 redis(一)安装和配置java客户端 https://forum.huaweicloud.com/thread-8621-1-1.html
  • [技术干货] redis和mysql区别
    Mysql将数据存储在磁盘,为中小型的网络数据库,支持集群。Redis存储在内存,为支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。redis既可以用来做持久存储,也可以做缓存,大多只用来做 数据读取缓存、队列、锁、等等的使用。目前大多数公司的存储都是mysql + redis,mysql作为主存储,redis作为辅助存储被用作缓存,加快访问读取的速度,提高性能。
  • Redis安全漏洞影响及加固
    [color=rgba(0, 0, 0, 0)][运维安全] Redis安全漏洞影响及加固
总条数:550 到第 页
上滑加载中