架构师养成记--29.redis开篇】的更多相关文章

主要有从下几点讲解 NOSQL(Redis) 简介.redis安装与部署 Redis基础事件类型详解 Redis高级命令 Redis与java的使用 Redis集群搭建 Redis集群与spring的整合TomcatRedis的Session共享 NOSQL简介 NoSQL,泛指非关系型的数据库,NoSQL数据库主要分为四大类. 键值存储数据库:主要使用哈希表,这个表中有一个特定的键和一个指针指向特定的数据.如Redis,Voldemort,Oracle BDB 类存储数据库:通常用来应对分布式…
前记:redis哨兵经验之谈.哨兵做主从切换可能要花费一两秒,这一两秒可能会丢失很多数据.解决方法之一是在java代码中做控制,try catch 到 链接断开的异常就sleep 一两秒钟再continue一下,重新执行一下try中的代码:另一种解决方法就是keepalive.所以说redis 3.0 之前的版本不太好用,我们应该把重点放到redis 3.0以后的版本 ,这一版本支持集群操作. 在redis3.0以前,提供了Sentinel工具来监控各Master状态,如果master异常,则会…
---恢复内容开始--- redis是一个支持持久化的内存数据库,也就是搜redis需要经常将内存中的数据同步到硬盘来保证持久化.redis持久化有两种方式. snapshotting(快照)默认方式,将内存中的数据以快照方式写入二进制文件中,默认为dump.rdb,可以通过配置设置自动做快照持久化的方式.我们可以配置redis在n秒内如果超过m个key则修改或自动做快照. snapshotting设置: save 900 1 #900秒内如果超过1个key被修改则发起快照保存 save 300…
Redis哨兵 有了主从复制,如果我想想对主从服务器进行监控,在redis2.6后提供了哨兵机制,2.6有哨兵1.0版本,并不稳定.2.8以后的哨兵功能才稳定起来. 顾名思义,哨兵就是监控Redis系统的运行状况,其主要功能有两点: 监控主数据库和从数据库是否正常运行 主数据库出现故障时,可以自动将从数据转换为主数据,实现自动切换 实现步骤: 在其中一台从服务器配置sentinel.conf copy文件sentinel.conf文件到/usr/local/redis/etc/中 修改senti…
Redis高级命令及特性 keys * 返回满足的所有键值(*表示模糊匹配) exists 是否存在指定的key(返回1表示存在,0表示不存在) expire 设置某个key的过期时间,使用ttl查看剩余时间(参数单位是秒,返回-2表示已过期,返回-1表示没有设置过期时间) perisist 取消过期时间 select 选择数据库 数据库为0到15(一共16个数据库)默认进入的是0数据库 move [key] [数据库下标] 将当前数据中的key转移到其他数据库中 randomkey 随机返回数…
String类型 Redis一共分为五种基本数据类型:String.Hash.List.Set.ZSet String类型是包含很多张类型的特殊类型,并且是二进制安全的.比如对序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串数值等等. Set和get方法的使用 设置值:set name sgm (多次设置name值,后一次会覆盖前一次) 取值 get name 删除值:del name setnx,nx的意思就是not exists:不覆盖赋值,如上例,如果name存在就不…
Redis的安装 下载地址http://redis.io/download 安装步骤: 首先需要安装gcc,把下载好的redis-3.0.0-rc2.tar.gz 放到 /usr/local 文件夹下 进行解压 tar -zxvf redis-3.0.0-rc.tar.gz 进入到redis-3.0.0目录下,进行编译 make 进入到src下继续安装 make install ,验证(查看src下的目录,有redis-server.redis-cil) 建立两个问价夹存放redis命令和配置文…
一.概述 disruptor对于处理并发任务很擅长,曾有人测过,一个线程里1s内可以处理六百万个订单,性能相当感人. 这个框架的结构大概是:数据生产端 --> 缓存 --> 消费端 缓存中的数据是主动发给消费端的,而不是像一般的生产者消费者模式那样,消费端去缓存中取数据. 可以将disruptor理解为,基于事件驱动的高效队列.轻量级的JMS disruptor学习网站:http://ifeve.com/disruptor-getting-started 二.开发流程 1.建Event类(数据…
ReentrantLock 有嗅探锁定和多路分支等功能,其实就是synchronized,wait,notify的升级. this锁定当前对象不方便,于是就有了用new Object()来作为锁的解决方案,后面jdk干脆就提供了一个Lock类. 伪代码: Lock lock = new ReentrantLock();//新建一个lock Condition condition = lock.newCondition();//获取条件 method1(){ try{ lock.lock(); 代…
java.util.concurrent.CyclicBarrier 一组线程共同等待,直到达到一个公共屏障点. 举个栗子,百米赛跑中,所有运动员都要等其他运动员都准备好后才能一起跑(假如没有发令员). import java.io.IOException; import java.util.Random; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier;…