redis

作者: zxhChex | 来源:发表于2019-08-19 19:14 被阅读0次

    yum install epel-release
    yum install redis

    systemctl start redis
    ss -natl|grep 6379

    vim /etc/redis.conf

    redis-cli
    info

    set name shark
    get name

    setnx name lijasdija
    0
    设置值,只有name 不存在时,执行设置操作(添加)

    set num 1000 EX 10
    10秒过期

    ttl num
    (integer) -2 已经过期
    ttl age
    (integer) -1 永不过期

    expire

    设置一个 key 的过期时间(单位: 秒)
    EXPIRE age 10
    (integer) 1
    ttl age
    (integer) 7

    persist key
    移除 key 的过期时间

    mset name xi age 18
    mget name age

    incr
    对一个 key 的值自增 1
    decr
    对一个 key 的值自减 1

    append name gua
    添加字符

    getrange name 0 8
    "xiguatian"

    del
    删除 一个或者多个 key

    EXISTS
    判断一个 key 是否存在, 返回 1 表示存在, 0 表示不存在

    type key
    返回key存储的类型,如果不存在则返回none


    图片.png

    keys

    通过通配符来获取匹配到的 key
    一般不在生产环境中使用此命令

    • 匹配所有
      ? 匹配任意一个

    scan

    dbsize
    返回数据库种 key 的总数

    lpush list a b c
    向列表左端添加元素,values是按左到右依次插入的,返回值为列表中元素个数,列表元素可以重复
    最后加入到元素,在列表的第一位
    rpush list 1 2 3 4 5
    向列表右端依次的添加元素,最后加入的元素在列表的最后位置

    lrange list 0 7
    0 -1 全部列出
    列出列表元素

    LINDEX
    通过元素在列表中的位置获取到这个元素,位置称为索引号/下标,
    位置支持正整数和负整数
    列表中元素的位置中,第一位是 0,最后一位是列表总长度减 1 或者是 -1

    LPUSHX
    向列表左端添加元素,只有key存在时才可以添加
    RPUSHX
    向列表右端添加元素

    LPOP
    将左端列表元素弹出,会将其从列表中删除,如果key不存在则返回(nil)
    RPOP
    将右端列表元素弹出,其他同LPOP

    LLEN
    返回列表的长度,如果列表不存在则返回0

    LREM
    删除列表中指定的值,返回值为删除的元素的个数

    HSET key field value
    将哈希表key中的域 (field) 设置成指定的value,如果key不存在则新建一个hash表,如果域不存在则新建域,如果域已存在则更新域,如果field不存在返回1表示新建,存在则返回0表示更新

    Set
    Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

    Sort Set 操作
    有序集合,在集合的基础上,为每元素排序;元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序。


    Redis 的认证连接
    // 在配置文件中找到以下配置项,大约在第 500
    shell> vi /etc/redis/6379.conf
    requirepass mypassword

    图片.png

    Redis 分别提供了 RDB 和 AOF 两种持久化机制:
    RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。
    vim /var/lib/redis/dump.rdb
    什么情况下会触发 RDB
    第一种情况,主动执行 save 命令(同步,阻塞 ,就是save 命令执行完毕后才能执行后续的其他命令操作)
    保存 RDB 文件的策略
    每次创建新的文件,并且替换原来旧文件(假如存在旧的文件)
    第二种情况,主动执行 bgsave 命令 (异步,非阻塞 )
    文件策略和 save 相同
    第三种情况,自动触发
    自动触发,就是通过对 Redis 的配置文件重相关选项的修改,当达到某个配置好的条件后,自动生成 RDB 文件
    ,其内部使用的是 bgsave 命令。

    AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。
    AOF 文件保存了 Redis 的数据库状态, 而文件里面包含的都是符合 Redis 通讯协议格式的命令文本。


    图片.png

    Redis 目前支持三种 AOF 保存模式,它们分别是:
    AOF_FSYNC_NO :不保存。
    AOF_FSYNC_EVERYSEC :每一秒钟保存一次。(生产中一般选这种)
    AOF_FSYNC_ALWAYS :每执行一个命令保存一次

    AOF的重写机制
    AOF 文件通过同步 Redis 服务器所执行的命令, 从而实现了数据库状态的记录, 但是, 这种同步方式会造成一个问题: 随着运行时间的流逝, AOF 文件会变得越来越大。

    对同一个键的状态的多次不同操作,而最终得到一个结果。比如对列表的添加删除元素。
    被频繁操作的键。比如累加

    相关文章

      网友评论

          本文标题:redis

          本文链接:https://www.haomeiwen.com/subject/mhufsctx.html