就职于阿里云数据库技术组,从事redis引擎开发工作,https://github.com/soloestoy
暂时未有相关通用技术能力~
阿里云技能认证
详细说明经历接近一年的开发、三个候选版本,Redis 7.0终于在2022年4月27日正式发布,这是Redis历史上改变最大的一个大版本。Redis 7.0包含50多个新命令及大量核心特性。不仅能够解决用户使用中的诸多问题也进一步拓展了Redis的使用场景。阿里云作为Redis开源社区的核心贡献者,参与了Redis 7.0的Roadmap制定并实现了Redis 7.0中的部分重要核心特性。本文将介绍Redis 7.0的核心特性及Redis开源社区的最新消息,然后让我们一起打开脑洞,探索Redis的未来。
# 前言 2019年的RedisConf比以往时候来的更早一些,今年会议时间是4月1-3号,仍然是在旧金山鱼人码头Pier 27。恰逢今年是Redis第10周年,规模也比以往大一些,注册人数超过1600人,总共有80个议题,除了RedisLabs外还有很多云厂商和Redis用户带来分享,今年也是阿里云首次在RedisConf进行分享。 # Agenda 会议总共三天,第一天是Tr
社区最新GA版本Redis 4.0推出已近一年,阿里云数据库Redis 4.0版也上线近半年,之前关于Redis 4.0的系列文章从源码实现来分析这些新功能,本文旨在从用户角度出发,让Redis的用户能够快速了解并使用Redis 4.0带来的福利。
业务中存在访问热点是在所难免的,redis也会遇到这个问题,然而如何发现热点key一直困扰着许多用户,redis4.0为我们带来了许多新特性,其中便包括基于LFU的热点key发现机制。
在过去,查看redis的内存使用状态只有info memory命令,而且也只有一些基础信息,想要获取全局信息就有些困难。4.0开始redis提供了`MEMORY`命令,一切都变得简单起来。
# Modules API reference ## `RedisModule_Alloc` void *RedisModule_Alloc(size_t bytes); Use like malloc(). Memory allocated with this function is reported in Redis INFO memory, used for ke
DEL删除体积较大的键,或FLUSHDB和FLUSHALL清空包含大量键的数据库时,会造成redis阻塞。redis 4.0 引入了lazyfree的机制,它可以将删除键或数据库的操作放在后台线程里执行,从而尽可能地避免服务器阻塞。
Redis内嵌了Lua环境来支持用户扩展功能,但是出于数据一致性考虑,要求脚本必须是纯函数的形式,对于随机性的写入Redis是拒绝的。从Redis 3.2开始Lua脚本支持随机性写入,最近在总结4.0的新特性,索性就都归到4.0里,方便查阅。
redis有两种持久化的方式——RDB和AOF,RDB是一份内存快照,AOF则为可回放的命令日志,他们两个各有特点也相互独立。4.0开始允许使用RDB-AOF混合持久化的方式,结合了两者的优点,通过aof-use-rdb-preamble配置项可以打开混合开关。
redis的aof持久化本质上是一个redo log,把所有执行过的写命令追加到aof文件中。那么随着redis的运行,aof文件会不断膨胀,当触发收缩条件时就要做aofrewrite。 redis是通过fork子进程来做aofrewrite,同时为了保证aof的连续性,父进程把aofrewrite期间的写命令缓存起来,等收割完子进程之后再追加到新的aof文件。
高可用(High Available)是线上生产环境所必不可少的重要条件,阿里云数据库Redis版作为一款成熟稳定的数据库产品,针对Redis的特性也支持高可用,本文将介绍云Redis是如何实现这一方案。 目前云Redis有主从版和集群版两种架构,本次主要针对主从版。
看下bind是不是设置成127.0.0.1了
用redis-benchmark测试下呢
参考下《阿里云Redis开发规范》:https://yq.aliyun.com/articles/531067?spm=a2c4e.11163080.searchblog.9.74192ec1oAwQQP
以及一些简单案例:https://help.aliyun.com/document_detail/43848.html?spm=5176.2020520141.105.d3.30356375pmhN3A
按下图设置下白名单呢:
看下redis.conf配置项里bind是不是设置错了
redis或者MySQL本身没有这类功能,需要你自己去实现,类似的:
如果要求强一致:
如果可以容忍不一致可以定时更新
看样子bind配置的是112.74.45.222,确定下是否是你的本机地址?
GET的时间复杂度为O(1),这是因为redis用hash table存储所有的key-value,时间复杂度和数据量无关,所以不用担心数据量带来GET效率变低。
应该考虑的是你要存储的数据1G是否够用,线下测试一下,阿里云redis也支持弹性扩缩容,随时可以扩充到2G或更大规格
如果想删除这个set,直接del即可,删除set里的单个元素使用srem命令,另如果set比较大的话在删除时可能会阻塞,建议使用4.0的lazyfree功能,用unlink命令来后台删除,参考文档《redis4.0之lazyfree》:https://yq.aliyun.com/articles/205504?spm=a2c4e.11155435.0.0.77343312ncLL91
不只连接数,还有带宽的提升,这些都是资源成本
阿里云redis已提供云上灾备功能,登陆控制台即可开通:
进入redis管理控制台,在左边栏有『备份恢复』,见下图:
你自建的redis应该是没有设置密码,所以被入侵了,这样跟不安全,建议配置requirepass
阿里云redis已提供云上灾备功能,控制台即可开通,具体见下图:
看下监控EvictedKeys是否有增长呢,有可能是内存满逐出了key,具体原理参考这篇文章:https://yq.aliyun.com/articles/272165
redis-port使用方法参考下:https://yq.aliyun.com/articles/394417?spm=a2c4e.11163080.searchblog.84.3eec2ec1Rf6Hqa
请放心阿里云绝对不会修改用户数据,一般这种情况都是有其他业务在使用同一个redis,团队大了开发之间没有沟通到位,用monitor监控一段时间,看下是哪些客户端在执行写入命令
新鲜的文档来了,《阿里云Redis开发规范》https://yq.aliyun.com/articles/531067?spm=a2c4e.11163080.searchblog.60.3eec2ec1zxgF1f
在ecs上ping云redis的链接地址,或者telnet ip port,再执行auth yourpassword试下看看返回结果
阿里云购买的8G规格指的是最大可用内存,也即redis配置中maxmemory。监控中的已分配内存是当前的使用量,可以用info memory命令查看是否准确