随笔分类 -  Redis

摘要:思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现?如果统计 PV 那非常好办,给每个网页一个独立的 Redis 计数器就可以了,这个计数器的 key 后缀加上当天的日期。这样来一个请求,incrb 阅读全文
posted @ 2020-04-22 17:07 天宇轩-王 阅读(910) 评论(0) 推荐(0) 编辑
摘要:Redis 在 3.2 版本以后增加了地理位置 GEO 模块,意味着我们可以使用 Redis 来实现摩拜单车「附近的 Mobike」、美团和饿了么「附近的餐馆」这样的功能了。 用数据库来算附近的人地图元素的位置数据使用二维的经纬度表示,经度范围 (-180, 180],纬度范围 (-90,90],纬 阅读全文
posted @ 2020-04-22 14:13 天宇轩-王 阅读(885) 评论(0) 推荐(0) 编辑
摘要:Redis Info 命令 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 Redis 服务器信息,包含以下域: redis_version : 阅读全文
posted @ 2020-04-22 11:10 天宇轩-王 阅读(1522) 评论(0) 推荐(0) 编辑
摘要:一:Lua脚本 加锁: --[[ 思路: 1.用2个局部变量接受参数 2.由于redis内置lua解析器,执行加锁命令 3.如果加锁成功,则设置超时时间 4.返回加锁命令的执行结果 ]] local key = KEYS[1] local value = KEYS[2] local rs1 = re 阅读全文
posted @ 2020-04-16 17:10 天宇轩-王 阅读(1165) 评论(0) 推荐(2) 编辑
摘要:在单机的Redis的使用下,Redis的分布式锁可以通过Lua进行实现,通过setnx和expire命令连用的方式,但是假如在以下情况下,就会造成无锁的现象。 注:分布式锁能不用就不用,尤其是在高并发的情况下。最近也在学Lua,就是为了和Redis和Nginx做整合,简单的学习一下。 不该释放的锁 阅读全文
posted @ 2020-04-15 23:11 天宇轩-王 阅读(1522) 评论(0) 推荐(2) 编辑
摘要:redis-benchmark 1.1 简介 第一个就介绍一下,Redis自带的性能检测工具redis-benchmark, 该工具可以模拟 N 个客户端同时发出 Y 个请求。 可以使用 redis-benchmark -h 来查看基准参数。 1.2 命令格式: redis-benchmark [- 阅读全文
posted @ 2020-04-12 19:31 天宇轩-王 阅读(370) 评论(0) 推荐(2) 编辑
摘要:RedisCluster介绍 RedisCluster 是 Redis 的亲儿子,它是 Redis 作者自己提供的 Redis 集群化方案。相对于 Codis 的不同,它是去中心化的,如图所示,该集群有三个 Redis 节点组成,每个节点负责整个集群的一部分数据,每个节点负责的数据多少可能不一样。这 阅读全文
posted @ 2020-04-12 18:07 天宇轩-王 阅读(586) 评论(0) 推荐(1) 编辑
摘要:创建Redis-Cluster集群时遇到的问题 " /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)" [root@i 阅读全文
posted @ 2020-04-12 17:04 天宇轩-王 阅读(528) 评论(0) 推荐(2) 编辑
摘要:由于在安装Redis集群的时候需要Ruby,但是直接yum Install ruby的版本太低了,会报粗 [root@iZbp143t3oxhfc3ar7jey0Z bin]# gem install -l redis-4.1.2.gem ERROR: Could not find a valid 阅读全文
posted @ 2020-04-12 17:02 天宇轩-王 阅读(829) 评论(0) 推荐(2) 编辑
摘要:一、Redis Sentinel 如果主节点凌晨3 点突发宕机怎么办?就坐等运维从床上爬起来,然后手工进行从主切换,再通知所有的程序把地址统统改一遍重新上线么?毫无疑问,这样的人工运维效率太低,事故发生时估计得至少 1 个小时才能缓过来。如果是一个大型公司,这样的事故足以上新闻了。 所以我们必须有一 阅读全文
posted @ 2020-04-12 14:01 天宇轩-王 阅读(861) 评论(0) 推荐(2) 编辑
摘要:缓存预热 缓存预热这个应该是一个比较常见的概念,相信很多小伙伴都应该可以很容易的理解,缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据! 现象: 项目刚上线,服务器迅速宕机。 问题排查: 阅读全文
posted @ 2020-04-11 12:42 天宇轩-王 阅读(1244) 评论(0) 推荐(2) 编辑
摘要:主从复制主从复制即将master中的数据即时、有效的复制到slave中特征:一个master可以拥有多个slave,一个slave只对应一个master职责: master: 1) 写数据 2) 执行写操作时,将出现变化的数据自动同步到slave 3) 读数据(可忽略) slave: 1) 读数据 阅读全文
posted @ 2020-04-07 13:16 天宇轩-王 阅读(251) 评论(0) 推荐(2) 编辑
摘要:Redis使用内存存储数据,在执行每一个命令前,会调用freeMemoryIfNeeded()检测内存是否充足。如果内存不满足新加入数据的最低存储要求, redis要临时删除一些数据为当前指令清理存储空间。清理数据的策略称为逐出算法。注意:逐出数据的过程不是100%能够清理出足够的可使用的内存空间, 阅读全文
posted @ 2020-04-02 00:21 天宇轩-王 阅读(881) 评论(0) 推荐(3) 编辑
摘要:过期策略 数据删除策略的目标在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露 。 定时删除 创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作 优点:节约内存,到时就删除,快速释放掉不必要的内存占 阅读全文
posted @ 2020-04-01 23:57 天宇轩-王 阅读(1175) 评论(0) 推荐(2) 编辑
摘要:redis中的事务定义 Redis中的事务(transaction)是一组命令的集合。 事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行。 事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次执行这些命令。 Redis保证一个事务中的所有命令 阅读全文
posted @ 2020-03-27 21:00 天宇轩-王 阅读(182) 评论(0) 推荐(2) 编辑
摘要:key通用操作 删除指定key del key 获取key是否存在 exists key 获取key的类型 type key 为指定key设置有效期 expire key seconds pexpire key milliseconds expireat key timestamp pexpirea 阅读全文
posted @ 2020-03-25 16:46 天宇轩-王 阅读(187) 评论(0) 推荐(1) 编辑
摘要:AOF 详解 AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的。与RDB相比可以简单描述为改记录数据为记录数据产生的过程AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式 从配置文件了解 阅读全文
posted @ 2020-03-22 18:27 天宇轩-王 阅读(539) 评论(0) 推荐(1) 编辑
摘要:只在单台redis恢复,未使用集群。 注意3个配置参数: appendonly no dbfilename dump.rdb dir ./data appendonly 设置成no,redis启动时会把/var/lib/redis 目录下的dump.rdb 中的数据恢复。dir 和dbfilenam 阅读全文
posted @ 2020-03-21 14:59 天宇轩-王 阅读(8128) 评论(0) 推荐(3) 编辑
摘要:RDB 详解 RDB持久化方式是指在指定时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中,Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,等到持久化过程结束,再用这个临时文件替换上次持久化好的文件,整个过程 阅读全文
posted @ 2020-03-21 14:29 天宇轩-王 阅读(5228) 评论(0) 推荐(1) 编辑
摘要:Redis 有序集合命令 下表列出了 redis 有序集合的基本命令: 序号命令及描述 1 ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数 2 ZCARD key 获取有序集合的成员数 3 ZCOUNT key 阅读全文
posted @ 2020-03-19 20:58 天宇轩-王 阅读(319) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示