您好,欢迎访问三七文档
JAVAACE-架构师培训课程系列讲师:xy老师(白贺翔)sk老师(琎哥)培训面向人群、课程方向、培训目标面向人群:从事java领域研发的同学、并且渴望提高技术的同学。课程方向:互联网主流技术、应用架构设计。培训目标:扩充知识面、提升眼界、培养同学应用架构设计能力授课老师:目前均就职于大型互联网公司并且从事架构设计工作(两位老师)。欢迎加入QQ群:524423112(咨询课程)再次欢迎大家参加JAVAACE培训!!一起进行技术讨论、分享、共同进步。1:BASE基础实战主要讲解技术点:并发编程、网络编程、Disruptor框架、NETTY框架、JVM实战2:架构师必备素养实战主要讲解技术点:World使用、Visio使用、powerdesigner使用、Excel使用、各种技术文档、设计文档、开发规范编写、流程制定等3:NOSQL实战主要讲解技术点:MONGODB、REDIS、LUA、SSDB4:SpringBoot实战主要讲解技术点:SpringBoot基础、SpingData、SpringBatch等内容5:HC实战主要讲解技术点:LVS、NGINX、HAPROXY、KEEPALIVED6:DISCOVERY实战主要讲解技术点:Zookeeper、DUBBO/DUBBOX、ZEROCICE、SPRINGCLOUD、(Eureka、Ribbon、Feign、Hystrix、Config、Zuul、Bus等技术点)7:MQ实战主要讲解技术点:ACTIVEMQ、RABBITMQ、ROCKETMQ、KAFKA、SpringCloudStream8:大数据实战主要讲解技术点:Hadoop、Hbase、Hive、Storm、Docker9:ELK实战主要讲解技术点:lucene/solr、elasticSearch、logstash、kibana10:数据存储实战主要讲解技术点:MysqlCluster/OracleHeigh、BESTSQLoptimize、FastDFS1RBAC基础架构课程:SpringBoot+SpringCloud+SSO单点登录+Shiro权限等技术2电商实战项目3鹰眼系统监控平台4互联网金融项目实战5支付行业项目实战基础部分:20讲1.xNOSQL(Redis)简介、Redis安装部署与可视化工具使用[2节](xy老师)2.xRedis基础数据类型详解结合实际工作使用[5节](sk老师)3.xRedis高级命令、Redis与java的使用[3节](xy老师)4.xRedis与Lua[4节](xy老师)/SSDB学习与使用(xy老师)5.xRedis主从、哨兵、集群搭建、动态扩容等[5节](sk老师)高级部分:20讲6.xcodis集群、会话缓存、高频访问限流(nginx+keepalived+lua+redis)、分布式锁等、秒杀、抽奖场景[10节](sk老师)7.xRedis集群与springboot整合、Session共享、消息队列(京东邮件系统springboot+redis+mail+retry)[7节](xy老师)8.xredis集群可视化监控)[3节](sk老师)NoSQL,泛指非关系型的数据库,NoSQL数据库的四大分类:键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如Redis,Voldemort,OracleBDB列存储数据库:这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。如HBase,Riak文档型数据库:该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,MongoDb图形(Graph)数据库:图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J,InfoGrid,InfiniteGraph1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境;是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求(非关系型的、分布式的、开源的。水平可扩展的)优点:对数据高并发读写对海量数据的高效率存储和访问对数据的可扩展性和高可用性缺点:redis(ACID处理非常简单)无法做到太复杂的关系数据库模型Redis是以key-valuestore存储,datastructureservice数据结构服务器。键可以包含:(string)字符串,哈希,(list)链表,(set)集合,(zset)有序集合。这些数据集合都支持push/pop、add/remove及取交集和并集以及更丰富的操作,redis支持各种不同的方式排序,为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加到文件记。我们日常操作Redis、包括集群等最方便快捷的可视化工具就是desktopmanager了下载地址:redis一共分为五种基本数据类型:String、Hash、List、Set、ZSetString类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等等。set和get方法:设置值:setnamebhz取值getname(说明设置name多次会覆盖)删除值:delname使用setnx(notexist)name如果不存在进行设置,存在就不需要进行设置了,返回0使用setex(expired)setexcolor10red设置color的有效期为10秒,10秒后返回nil(在redis里nil表示空)使用setrange替换字符串:setemail174754613@qq.comsetrangeemail10ww(10表示从第几位开始替换,后面跟上替换的字符串)使用一次性设置多个和获取多个值的mset、mget方法:msetkey1bhzkey2baikey328;对应的mgetkey1key2key3方法对应的也有msetnx和mget方法。一次性设置和取值的getset方法:setkey4ccgetsetkey4changchun返回旧值并设置新值的方法。incr和decr方法:对某一个值进行递增和递减incrby和decrby方法:对某个值进行指定长度的递增和递减append[name]方法:字符串追加方法strlen[name]方法:获取字符串的长度Hash类型是String类型的field和value的映射表,或者说一个String集合。它的特别适合存储对象,相比较而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。形如:hsetmyhashfield1hello(含义是hset是hash集合,myhash是集合名字field1是字段名hello为其值)使用hgetmyhashfield1获取内容,也可以存储多个值。hmset可以进行批量存储多个键值对:hmsetmyhashsexnanaddrbeijing,也可使用hmget进行批量获取多个键值对。同样也有hsetnx,和setnx大同小异。hincrby和hdecrby集合递增和递减。hexists是否存在key如果存在返回不存在返回0hlen返回hash集合里的所有的键数值hdel删除指定hash的fieldhkeys返回hash里所有的字段hvals返回hash的所有valuehgetall返回hash里所有的key和valueList类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更详细的说,List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,list的设计非常简单精巧,即可以做为栈,又可以作为队列。满足绝大多数需求。lpush方法:从头部加入元素(栈)先进后出形如:lpushlist1hellolpushlist1worldlrangelist10-1(表示从头取到末尾)rpush方法:从尾部加入元素(队列)先进先出形如:rpushlist2acerpushlist2jgslrangelist20-1linsert方法:插入元素形如:linsertlist3before[集合的元素][插入的元素]lset方法:将指定下标的元素替换掉lrem方法:删除元素返回删除的个数ltrim方法:保留指定key的值范围内的数据lpop方法:从list的头部删除元素,并返回删除元素rpop方法:从list的尾部删除元素,并返回删除元素rpoplpush方法:第一步从尾部删除元素,然后第二步并从头部加入元素lindex方法:返回名称为key的list中index位置的元素llen方法:返回元素的个数set集合是string类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集、并集、差集。sadd方法:向名称为key的set中添加元素小结:set集合不允许重复元素smembers查看set集合的元素srem方法:删除set集合元素spop方法:随机返回删除的keysdiff方法:返回俩个集合的不同元素(哪个集合在前面就以哪个集合为标准)sdiffstore方法:将返回的不同元素存储到另外一个集合里小结:这里是把set1和set2的不同元素(以set1为准)存储到set3集合里sinter方法:返回集合的交集sinterstroe方法:返回交集结果,存入set3中sunion方法:取并集sunionstore方法:取得并集,存入set3中smove方法:从一个set集合移动到另一个set集合里小结将set1中的元素移动到set2中(相当于剪切复制)scard方法:查看集合里元素个数srandmember方法:随机返回一个元素sismember方法:判断某元素是否为集合中的元素(小结返回1代表是集合中的元素,0代表不是)zadd向有序集合中添加一个元素,该元素如果存在,则更新顺序(小结在重复插入的时候会根据顺序属性更新)zrem删除名称为key的zset中的元素memberzincrby以指定值去自动递增或者减少,用法和之前的incrby类似zrangebyscore找到指定区间范围的数据进行返回zremrangebyrank删除1到1(只删除索引1)zremrangebyscore删除指定序号zrank返回排序索引从小到大排序(升序排序之后再找索引)注意一个是顺序号一个是索引zrank返回的是索引zrevrank返回排序索引从大到小排序(降序排序之后再找索引)zrangebyscorezset123withscores找到指定区间范围的数据进行返回zcard返回集合里所有元素的个数zcount返回集合中score在给定区间中的数量zremrangebyrankzset[from][to](删除索引)zremrangebyscorezset[from][to](删除指定序号)返回满足的所有键keys*(可以模糊匹配)exists是否存在指定的keyexpire设置某个k
本文标题:Redis权威指南
链接地址:https://www.777doc.com/doc-6424833 .html