您的位置:首页 > 数据库 > Redis

Redis之最佳使用

2016-04-13 00:00 549 查看
摘要: Redis简介
Redis高可用平台演进
Redis特点
如何使用Redis服务

REDIS简介
lRemote Dictionary Server
lKV NoSQL
lIn-memory can persistent

lOpen Source
lBorn on 2009 @antirez
l现使用版本2.8.19
l3.0 Support cluster

REDIS高可用平台演进
lV1版本:
lMaster/slave + keepalived+VIP



lV1版本缺点:
l特殊场景处理不完美
lMaster/Slave, Master故障后,有可能需要人为参与Master/Slave关系指定
l单机多实例keepalived无配置动态加载
l偶而出现双Master现象
lKeepalived异常出,双边出现VIP现象

lV2版本:
lMaster/Slave+Sentinel
lRedis 2.8后支持



REDIS特点
l进程特点
l单进程,只能使用到一个Core
l基于事件编程,Epoll接入,对于连接数不太care

lMaster/Slave
lSlave加入,需要从Master获取一份全量数据
lMaster需要做Bgsave,会Dobule一份内存

lStorage & Cache
lStorage 不能和Cache混用
lStorage不能使用LRU
lStorage数据超过内存后,会出现不响应的现象
lStorage 不能和Cache混用
lStorage不能使用LRU
lStorage数据超过内存后,会出现不响应的现象

lLRU算法maxmemory-policy
lVolatile-lru
lAllkeys-lru
lVolatile-random
lAllkeys-random
lVolatile-ttl
lNoeviction

l特别小心对待O(N)命令
lSMEMBERS
lLRANGE
lHMGET

l不要设计过大的{list, set,hash}
l容易造hash不均衡
l容易引起慢查询
l慢查询多则导致客户端超时

lRedis内存分布
lredis内存使用量估算方式:(key的平均长度+value的平均长度)*kv的个数*2

l所以严禁在Redis中存储大量的静态数据

如何使用REDIS服务
lMySQL VS Redis
l多线程 VS 单进程
lRedis对slow query都不能容忍
l只要不使用事务,则不要需要引入并发控制,不存在多版本
l非常容易统计ResponseTime
l磁盘 VS 内存
l可提供十万的qps
l不能容忍使用到swap
l主从复制
l同步不落地,同步依赖于内存+网络
l网络瞬断可以续传,2.8以前是全量
lSlave crash后几乎都要重做
l级联复制可靠性低
l主从切换需要重做从库,1主多从不现实
l复制上没有MySQL靠谱
l变更持久性
lAlways,everysec, no
l主从一致性
l从库延时微秒级别
l可配至少m个从库延时在N秒内
l数据安全性
l可以设置密码
lRedis权限无分级,有密码后可以做所有事情MySQL VS Redis
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis