随笔分类 -  Redis

摘要:本文主要介绍阿里云Redis的开发规范,主要从以下几个方面说明: 1、键值设计 2、命令使用 3、客户端使用 4、相关工具 一、键值设计 1、key name设计 1).[建议]:可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id 2).[建议]:简 阅读全文
posted @ 2019-06-12 14:11 Diamond-Shine 阅读(446) 评论(0) 推荐(0) 编辑
摘要:在之前学习了Master-Slave、Sentinel模式,但是在某些情况下还是无法满足系统对QPS等要求,这时候就需要Cluster,Redis3.0支持了cluster 一、为什么使用Cluster 1、并发量 官方说明Redis支持10W条命令/秒,这已经很牛逼了,但是有些业务场景需要100W 阅读全文
posted @ 2019-05-30 00:11 Diamond-Shine 阅读(464) 评论(0) 推荐(0) 编辑
摘要:这里只是一点面试题,想了解更多,可以查看本人的Redis系列:https://www.cnblogs.com/huigelaile/category/1461895.html 1、Redis和Memcached的区别 1).存储方式 Memcached的数据都存储在内存中,只要端点就挂掉,数据不会超 阅读全文
posted @ 2019-05-22 11:00 Diamond-Shine 阅读(295) 评论(0) 推荐(0) 编辑
摘要:1、缓存更新策略 1、LRU/LFU/FIFO算法剔除:例如maxmemory-policy 2、超时剔除,过期时间expire,对于一些用户可以容忍延时更新的数据,例如文章简介内容改了几个字 3、主动更新:代码控制生命周期,对于一些必须实时更新的数据,例如金额 2、缓存粒度问题 1、通用性:全量属 阅读全文
posted @ 2019-05-21 23:40 Diamond-Shine 阅读(412) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章了解了主从复制,主从复制本身的容错性很差,一旦master挂掉,只能进行手动故障转移,很难完美的解决这个问题 而本文讲解的sentinel可以解决这个问题 Redis sentinel示意图: 安装与配置 1、配置开启主从节点 2、配置开启sentinel监控主节点(sentinel是特 阅读全文
posted @ 2019-05-21 23:20 Diamond-Shine 阅读(282) 评论(0) 推荐(0) 编辑
摘要:Redis作为一个基于key-value的NoSQL数据库,最显著的特点存取速度非常快,官方说可以达到10W OPS,但是Redis为何这么快? 1、开发语言 Redis使用C语言进行编写的,而Unix系统也是C语言实现,所以C语言是非常贴近操作系统的语言 2、基于内存读写 基于内存读写是Redis 阅读全文
posted @ 2019-05-21 18:01 Diamond-Shine 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:单机环境存在的问题: 1、机器故障,直接凉凉 2、容量瓶颈 3、QPS瓶颈 主从复制 对于可拓展平台来说,复制(replication)是必不可少的。replication可以让其他服务器slave拥有一个不断更新的数据副本,slave可以用 来处理客户端的读请求。 1.1、特点 1、一个maste 阅读全文
posted @ 2019-05-21 11:31 Diamond-Shine 阅读(207) 评论(0) 推荐(0) 编辑
摘要:持久化就是将数据的更新异步的保存到磁盘中 持久化方式: 1、快照:某个时间点数据的备份 MySQL dump、Redis RDB 2、写日志:MySQL BinLog、HBASE Hlog、Redis AOF 只针对Redis两种持久化方式进行介绍,RDB和AOF可以使用一种、两种,甚至都不使用 持 阅读全文
posted @ 2019-05-20 16:06 Diamond-Shine 阅读(336) 评论(0) 推荐(0) 编辑
摘要:Redis命令执行生命周期: 发送命令 >排队(单线程) >执行命令 >返回结果 慢查询: 只是针对命令执行阶段 慢查询日志通过一个固定长度的FIFO queue,这个queue保存在内存中,通过设置命令执行时间慢查询范围,超过这个范围进入慢查询范围,就 会保存到queue中 慢查询有两个相关参数: 阅读全文
posted @ 2019-05-20 15:05 Diamond-Shine 阅读(3625) 评论(0) 推荐(0) 编辑
摘要:分布式锁: Redis可以实现分布式锁,只是讨论Redis的实现思路,相对来说,Zookeeper实现分布式锁可能更加可靠 为什么使用分布式锁: 单机环境下只存在多线程,通过同步操作就可以实现对并发环境的安全操作,但是多机环境就变成多进程、多线程,这时候同步、加锁已经无 法保证原子性 实现分布式可靠 阅读全文
posted @ 2019-05-19 10:22 Diamond-Shine 阅读(3090) 评论(1) 推荐(0) 编辑
摘要:Redis:Remote Dictionary Server 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。C语言实现,单线程 Redis特性: 1、速度快:官方声明可以达到10W QPS 2、持久化:aof、rdb 3、支持多种数据结构:String、H 阅读全文
posted @ 2019-05-17 15:08 Diamond-Shine 阅读(860) 评论(0) 推荐(0) 编辑