zoukankan      html  css  js  c++  java
  • 非关系数据库之redis入门到实战(3)Redis入门介绍与安装

    Linux下:redis安装
    1.yum install gcc-c++
    2.redis安装包下:make
    3.redis安装包下:make install PREFIX=/apps/redis
    4.redis-server &启动
    5.yum install -y ruby
    6.yum install -y rubygems
    7.gem install /apps/redis-3.0.0.gem
    8.拷贝6个机器:redis安装包下
    mkdir redis-cluster
    cp /apps/redis  /app/redis-cluster/redis01 -r
    cp  /apps/redis-3.0.0/redis.conf /app/redis-cluster/redis01 -r
    9.vi redis.conf
    修改端口 port 7000
    修改cluster-enable 的值改为yes
    修改daemonize yes
    10.配置6台集群同时启动:redis-cluster目录下
    vi start-all
    cd redis01/bin
    ./redis-server redis.conf
    cd ../..
    cd redis02/bin
    ./redis-server redis.conf
    cd ../..
    cd redis03/bin
    ./redis-server redis.conf
    cd ../..
    cd redis04/bin
    ./redis-server redis.conf
    cd ../..
    cd redis05/bin
    ./redis-server redis.conf
    cd ../..
    cd redis06/bin
    ./redis-server redis.conf
    11.修改权限
    chmod 777 start-all.sh
    12.启动Redis集群
    ./start-all.sh
    13. cp /apps/redis-3.0.0/src/redis-trib.rb /apps/redis-cluster/redis0707/ -r
    14.redis-cluster目录下删除aof和dump
    rm -rf */bin/*aof */bin/*dump
    14.启动redis集群副本:redis0707目录下启动
     ./redis-trib.rb create --replicas 1 192.168.91.3:7000 192.168.91.3:7001 192.168.91.3:7002 192.168.91.3:7003 192.168.91.3:7004 192.168.91.3:7005
    
    
    一.非关系型的数据库(NOSqL)

    1.CAP(consistency,availablity,partition) 2.中文意思:一致性,容错性和分区性

    3.作用:解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方案。

    二.redis

    服务端启动redis-server & 客服端启动:redis-cli -h hry4 -p 6379

    1.定义:高性能键值对(key-value)数据库。

    2.值类型

    ​ String类型:二进制安全的字符串。

    ​ Hash类型:键值对的集合,是字符串字段和字符串字段值的map,经常用来存储对象。

    ​ List类型:有序可重复的集合。

    ​ Set类型:无序的无重复的字符串集合。

    ​ SortedSet类型zSet:不同的是每个元素都会关联一个double类型的分数。

    3.字符串类型操作 增:set strkey strvalue或者mset 李四 20 张三 30 删:del strkey 查:get strkey或者mget 李四 张三 strkey 4.整型类型操作 增:set strkey 100 查:get strkey 加:incr strkey 减:decr strkey或者decrby strkey 10 5.哈希类型操作 增:hset obj k1 v1 hset obj k2 v2 查:hget obj k1 批量增:hmset obj k3 v3 k4 v4 批量查:hmget obj k1 k2 删:hdel obj v1 增:hset obj v5 100 加:hincrby obj v5 20 6.List类型操作 lpush keylist kk jj hh//头部追加 rpush keylist 1 22 33//尾部追加 lrange keylist 0 2//查询指定范围 lrange keylist 0 -1//查询所有 lpop keylist//查询首部元素 rpop keylist//查询尾部元素 lrem keylist 2 3 7.set类型操作 增:sadd setkey jj kk ll 查:smember setkey 删:srem setkey kk 查询指定值个数:sismember setkey mm 增:sadd setkey2 jj mm 交集:sinter setkey setkey2 差集:sdiff setkey setkey2 并集:sunion setkey setkey2 8.zset类型操作:注意值不可重复,键可以重复 增:zadd zsetkey 1 2 22 3 66 8 66 9 查:zrange zsetkey 0 3 或者zrange zsetkey 0 -1//查看所有 删:zrem zsetkey 1

    9.key的操作命令

    设置过期时间:expire zsetkey 100 查看过期时间:TTL zsetkey 清除生存时间:persist zsetkey

    二.spark streaming和redis整理

    1.比较updateStateByKey和mapWithState 相同点:

    ①都是对dstream下转换类下状态类型
    ②都是对状态进行管理
    ③都是统计全局key的状态
    ④它们都要用到checkpoint检查机制。

    不同点: ①底层实现:updateStateByKey是将preSateRDD和parentRDD进行co-group,而mapWithState是创建了一个MapWithStateRDD,存的数据是MapWithStateRDDRecord对象。 ②效率:updateStateByKey效率比mapWithState低。 ③状态更新情况:updateStateByKey每次更新时是对所有的数据更新,而mapwithState每次只会对当前batch有的数据进行跟新。 ④最大区别:没有数据输入时,mapWithState不会返回没有变化key的数据,而updateStateByKey会返回没有变化key的数据。 2.比较SparkStreaming和kafka0.8集成的两种方式:reciever和直连模式? 相同点:都是sparkStreaming与kafka的集成方式。 不同点: ①算子不同:reciever算子是createStream,而直连模式的算子是createDirectStream ②方法不同:reciever的方法是push,负责去topic中推送数据,而直连模式的方法是pull负责从topic中拉取数据。 ③APi不同:reciever调用的Kafka高级API,而直连模式调用的Kafka低级API。 ④有无接受者:reciever有,而直连模式没有。 ⑤保证数据不丢失办法:直连模式是采用定期查询Kafka在topic+partition中的最新偏移量,而receiver采用的是两次复制数据。 ⑥效率:直连模式的效率要比receiver高,因为receiver有数据丢失时有两次数据复制,分别是kafka和预写日志,而直连模式不需要预写日志 ⑦zookeeper偏移量更新情况:直连模式不会更新zookeeper偏移量 ⑧并行性:直连模式简化并行性,不需要创建多个输入Kafka流并将其合并,kafka和rdd是一对一的映射更新。 ⑨receiver会构造定时器。 3.认识sparkstreaming 作用:用于流式数据的处理。 优点:高吞吐量,高容错性。 缺点:数据延迟度高。 输入源:kafka,flume等 输出:Hdfs,数据库 4.认识Dstream 定义:Spark Streaming的基础抽象,用一系列连续的Rdd表示。 原理:Spark Streaming将接收到的实时流数据,按照一定时间间隔,对数据进行拆分,交给Spark Engine引擎,最终得到一批批的结果。。 分类:转换和输出两种,其中转换又分为无状态和有状态两种,无状态在每个批次的处理不依赖于之前批次的数据,而有状态转化依赖使用之前批次的数据或者是中间结果来计算当前批次的数据,而且有状态包括基于滑动窗口的转化操作和追踪状态变化的转化操作两种,其中追踪状态变化是UpdateStateByKey,是用于记录历史记录和中跨批次维护状态,而窗口操作是通过设置为窗口时长和滑动步长来获取状态,且窗口时长和滑动步长是批次间隔的整数倍 输出操作是对流数据经转化操作得到的数据所要执行的操作,与rdd的惰性求值相似。 5.什么是NoSQL? 解决高并发、高可扩展、高可用、大数据存储问题的非关系型数据库。 6.如何选择Nosql:CAP三个原则(一致性,可用性和分区容错性) 7.redis认识: 用C语言开发的一个开源的高性能键值对(key-value)非关系型数据库。 类型有:字符串,list,hash,set和有序集合(zset)。 应用场景:缓存,应用排行榜,数据过期处理,任务队列,分布式集群架构session分离。 特性:性能高,数据类型丰富,操作都是原子,特性非常丰富。

    8.RDB和AOF优缺点

     优点缺点
    RDB 适合备份 避免在服务器故障时丢失数据
    比较紧凑 适合灾难恢复 耗时
      性能高  
      恢复大数据集速度快  
    AOF 只进行追加操作的日志文件,进行重写 相同的数据集来说,体积比RDB大
      可使redis耐久  
    持久化方式 RDB是快照完成的 AOF默认不开启,手动开启
  • 相关阅读:
    Java之this关键字的用法
    JavaSE 之 final 初探
    LinkedList 浅析示例
    HashSet 浅析示例
    ArrayList 浅析示例
    MySQL5.7 修改密码
    IE10 和 Chrome50 对日期 new Date() 支持的区别
    databtables 设置(显示)行号
    团队管理
    财务名称
  • 原文地址:https://www.cnblogs.com/huanghanyu/p/13808794.html
Copyright © 2011-2022 走看看