redis

官方文档:http://redisdoc.com/topic/persistence.html

一、编译redis源码和安装redis

    1.yum install gcc-c++    安装编译环境

    2.make    编译

    3.make install    安装,默认安装到/usr/local/bin下

redis_第1张图片

    4.redis.conf  修改daemonize为yes,后台启动

    5.redis-cli    启动客户端   验证通不通ping " "

    6.redi  s-cli shutdown    关闭redis

二、redis使用

    1.select 0    切换数据库

    2.单线程+多路IO复用技术(redis),使用非阻塞socket技术,监听;多线程+锁(memcache)

    3.redis数据类型

        string:字符串,二进制安全,图片视频可以序列化成字符串,512M

        set:无需不重复集合

        list:有序可重复集合

        hash:map双列集合

        zset:有序不重复集合

    4.    keys * 查看所有的key

            dbsize    查看key数量

            exists key    是否存在

            type    key    类型

            del    key    删除

            expire    key    seconds    设置过期时间

            ttl    key    查看过期时间

            flushdb    清空当前库

            flushall    清空所有库

    5.string类型常用操作

            set

            get

            append key value2   将值追加到value后面

            strlen    value字符串长度

            setnx    key不存在时设置

            incr    将数字自增1

            decr    自减

            incrby    自增,自定义数字

            mget,mset,msetnx    批量

            getrange    类似于substring  

            setex    设置的同时设置超时时间

            getset    获取的时候设置新值

    6.list类型常用操作

            lpush/rpush    推数据

            lpop/rpop    拉取数据

            rpoplpush  k1  k2    从k1右边取初,存入k2左边

            lrange    从左开始索引范围取数据

            lindex    左开始,去索引数据

            llen    长度

            linsert  l1 before v1 newvaule  在v1后面插入

            lrem  l1 n v1  从左边删除n个v1

    7.set无序集合常用操作

        sadd k1 v1 v2 v3    添加

        smembers    取出所有值

        sismember    k1 v1    v1是否是k1的成员

        scard    数量

        srem  k1 v1 v2    批量删除值

        spop    随机吐出一个值,会删除该值

        srandmember k1 n   随机取出几个值

        sinter    k1 k2    交集

        sunion    k1 k2    并集

        sdiff    k1 k2    差集

    8.hash类型常用操作

        hset    k1 f1 value    插入值

        hget    k2  f1    取值

        hmset    批量插入值

        hexistskey    查看是否有该属性

        hkeys    返回所有的属性

        hvals    返回所有的值

        hincrby    给属性增加值

        hsetnx    不存在时添加

    9.zset常用操作

        zadd z1 1000 v1 2000 v2 3000 v3    添加

        zrange z1 0 -1 withscores   查找

三、redis事务

    1.单独隔离,事务中的命令序列化,串联,按照顺序执行,不会被其他客户端打断

    2.multi -  命令  - exec

    3.悲观锁    ,乐观锁(watch key)

四.redis持久化

    RDB:

        900秒内有一次改变就触发写入;300秒内有10次改变就触发写入;60秒内有10000次改变就触发写入

redis_第2张图片

        rdb恢复速度快;但会丢失数据;文件小

    AOF:

        需要手动开启

        恢复慢;文件大;可读的日志文件;丢失数据概率小;

五、主从复制

            slaveof    ip    port

            info replication

            master写    slave 读   

            先将rdb文件给从机加载,后面的写操作直接传给从机

            一主两仆

            slave no one反客为主

        哨兵模式:

            新建 sentinel.conf    sentinel monitor mymaster     ip    port  1(至少有多少个哨兵同意迁移的数量)

            

            

            

    

你可能感兴趣的:(redis)