首页
Search
1
JAVA垃圾回收
993 阅读
2
Kafka、RocketMQ消息队列总结
981 阅读
3
Flink on Kubernetes 计算和存储分离落地实践
969 阅读
4
Linux免密登陆-ubuntu
904 阅读
5
Redis集群部署方案
890 阅读
大数据
Flink
后端
Java
笔记
运维
游客
Search
标签搜索
大数据
Flink
离线
实时
Redis
OpenJDK
Java
笔记
JVM
Elasticsearch
GC
Hadoop
Hudi
Flink CDC
K8S
数据湖
TOTC
累计撰写
307
篇文章
累计阅读
104.3万
次
首页
栏目
大数据
Flink
后端
Java
笔记
运维
页面
搜索到
2
篇与
Redis
的结果
返回首页
2019-04-20
Redis集群部署方案
系统包安装 配置操作系统yum 源安装以下系统包安装gcc:yum install gcc安装zlib:yum install zib安装ruby:yum install ruby 2.0以上安装rubygems:yum install rubygemsRedis 安装 在redis 官网https://redis.io/download下载 redis-3.2.9.tar.gz拷贝redis-3.2.9.tar.gz 到/application/search解压 tar –zxvf redis-3.2.9.tar.gz安装 cd src && make && make test && make install修改配置 进入cd /application/search/ redis-3.2.9复制 cp redis.conf redis6400.conf修改 redis6400.conf 里面的参数port 6400 --端口maxmemory 2g –内存大小cluster-enabled yes –开启集群模式dir /data0/redis 数据文件存放位置详细配置请见 服务器上配置启动停止 以 172.16.0.9 6400为例:启动:redis-server redis6400.conf停止: redis-cli –c –h 172.16.0.9 –p 6400 shutdown构建集群 在三台172.16.0.9,172.16.0.8 172.16.0.6 安装完成redis以后构建三主三从的高可用redis集群在任一台机器执行命令:/application/search/redis-3.2.9/src/redis-trib.rb create --replicas 2 172.16.0.9:6400 172.16.0.9:6401 172.16.0.9:6402 172.16.0.6:6500 172.16.0.6:6501 172.16.0.6:6502 172.16.0.8:6600 172.16.0.8:6601 172.16.0.8:6602
2019年04月20日
890 阅读
38 点赞
2013-06-08
Redis学习笔记
缓存穿透: 访问不存在的数据时,大量的并发去查询DB,可能会瞬间压垮DB。缓存击穿: 某一热点数据过期。缓存雪崩: 过期策略一样,同时过期。解决方案:a.使用互斥锁 ,缓存中不存在时先上锁,从数据库加载完毕后释放锁,其他线程等待后重试(从缓存中取)。单机用lock,分布式用redis setnx。b.隆过滤器 ,所有可能存在的数据放到布隆过滤器,一定不存在的数据会被拦截掉。同时使用netflix hystrix,隔离每个服务,防止任何单个依赖服务耗尽所有用户线程。{lamp/}持久化 持久化方式有RDB,一种快照式的持久化方法,手动或者定期执行,将某个时间点上的数据库状态保存到一个 RDB 文件中,对于数据恢复的完整性不是非常敏感。AOF是将执行过的写指令记录下来, 可以使用不同的fsync策略:无fsync、每秒fsync、每次写的时候fsync,使用默认的每秒fsync策略,Redis的性能依然很好,一旦出现故障,最多丢失1秒的数据。{lamp/}过期策略 过期策略定时器删除,在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除。惰性删除,key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。定期删除,每隔一段时间执行一次删除过期key操作。{lamp/}数据类型 String类型是字节数组的形式存储,类似ArrayList的动态字符串、是二进制安全的,可以把图片和视频文件保存在String中,但最大长度是512M,如果value是个整数,还可以进行自增操作。String可以进行位操作,可用来实现位图。位图的典型应用有数据压缩、海量数据去重、海量数据排序,将出现的数字在位图中对应的位置置为1,数据量大时内存不足以放下所有的数。List可用来实现消息队列、栈,结构是快速链表(LinkList+连续内存块),插入删除非常快,索引定位慢。Hash结构类似HashMap,但是rehash操作是渐进式的(新建一个,将旧的慢慢复制到新的)。Set内部的实现相当于特殊的字典,Value是NULL,键值是无序唯一的。可以存放中奖的用户 ID,因为有去重功能,可以保证同一个用户不会中奖两次。ZSet内部是跳跃列表,采取一个随机策略来决定新元素可以兼职到第几层。zset 可以用来存粉丝列表,value 值是粉丝的用户 ID,score 是关注时间。我们可以对粉丝列表按关注时间进行排序。布隆过滤器已经存在的肯定能判断到、不存在的可能会误判。爬虫里,一个网址是否被访问过。超大的位数组和几个哈希函数。HyperLogLog,Redis 的高级数据结构,放入直接返回计数,有误判。基数统计。{lamp/}其他 redis在网络请求模块使用了一个线程(所以不需考虑并发安全性),所有的命令都会进入一个队列中,避免了不必要的上下文切换和竞争条件。部署模式有主从复制模式。哨兵模式,较难支持在线扩容并且每台redis服务器都存储相同的数据。集群模式redis3.0,实现了分布式存储。分布式锁,版本号形式 setnx (setIfAbsent 、getAndSet)。
2013年06月08日
1,051 阅读
50 点赞