• Readis基本操作


    一.redis基本操作

    常用关键字 关键字的解释 关键字示例

    del

    作用:删除指定key的value

    参数列表:

      key 指定的key

    del key1
    expire  

    作用:设置key的存在时间

    参数列表:

      key 指定的key

      second 过期时间

    expire key1 5

    (以秒为单位)

    keys

    作用:返回指定模式的的key

    参数列表:

      pattern 匹配的字符串

    keys *

    (这里是返回当前数据库的全部key,还有?,要查找的是符号需要加 "/" 转义)

    migrate

    作用:移动指定key到指定的redis的数据库里

    参数列表:

      host 目标主机的IP

      port 目标redis所在端口号

      key 想要移动的key

      destination-db 目标数据库的库号

      timeout 超时时间 超过这个时间还没移动完就报错

    migrate localhost 6380 key1 0 5000

    (要在两个不同的redis间移动才可以,同一个redis移动会报错)

    move

    作用:移动指定key到指定数据库里,不过是在同一个redis

    参数列表:

      key 需要移动的key

      db 目标数据库的库号

    move key1 2

    (redis默认有16个数据库,默认是用0,可以通过redis.conf来修改数据库个数)

    persist

    作用:持久化指定的key

    参数列表:

      key 需要持久化的kye

    persist key1
    rename

    作用:重命名指定的key

    参数列表:

      key 需要重命名的key

      newkey 新的名字

    rename key1 key2
    select

    作用:切换数据库

    参数列表:  

      index 要切换的数据库的库号 

    select 1
     ttl

    作用:显示key的剩余时间

    set key1 long ex 5 

    ttl key1

    ex

    作用:设置key的存在时间

    set key1 ex 10
    setnx

    作用:只有没有指定key的时候才插入成功

    setnx key1 long
    mset

    作用:同时插入多个键值对

    mset name long age 20
    incr

    作用:对value加一

    set key1 1

    incr key1

    decr

    作用:对value减一

    set key1 1

    decr key1

    exists

    作用:判断key是否存在

    exists key1

    (存在返回1,不存在返回0)

     ...    

     

    二.List基本操作

    Lpush 从列表左边插入值

    Rpush 从列表右边插入值

    Lrange 获取一个列表的值,需要指定开始结束下标(-1表示最后一个)

    Lpop 返回并移除表头的值

    Rpop 返回并移除表尾的值

    Lrem(LIst remove)移除与给定的值相同的元素并设置要移除的数量

    Lset通过指定下标名来设置值

    Lindex通过下标返回值(这里取值的下标需要注意它是与你存入的下标是相反的,如果你存入的是在第一位,那么去就需要从最后取)

    Linsert插入值到指定下标处

    Llen返回指定列表长度

    还有几个R开头的命令,这里介绍一个Rpush作用是插入数据到表尾

    三.set的基本操作

    Sadd 增加元素

    Scard返回元素数量

    Sismember 判断这个值是否已经存在这个列表里

    Smembers 返回这个列表里全部的值

    Smove原子的从一个集合移动到另一个集合里

    Srem移除集合中的一个或多个元素

    Sunion返回多个集合的并集

    四. Zset(有序的Set)

      zadd 传入一个member的集合,每个value的前面都有一个score,zset就是以此为依据来排序

    zrange 通过key获取zset的全部member,加上WITHSCORES就会把分数值一同显示

    zrem 姗迟指定key的zset中指定的member

    zcard 返回指定key的zset的总数

    zincrby 对指定的member的score加上指定的分数

    zcount 返回在一个分值区间中的member的数量

    zrank 返回指定member的排名(从零开始排)

    zscore 返回指定member的的分数

    zrevrange 使用方法与range一样只是以倒序排列

    。。。

    五.hash

      hash是redis可以存多个键值对的数据结构,在解决session跨域问题的时候,可以通过这个来模拟session的数据结构

    命令 具体解释 示例
    hset

    作用:新建一个hash,如果指定的hash已经存在则是增加,不会再新建

    参数列表:

      key 不用说了

      field 你的键值对的键

      value 你的键值对的值

    hset key1 name longxianfeng

    hset key1 age 20

    (一次只能存入一个键值对,多个键值对要分多次存)

    hlen

    作用:查看hash集的长度

    hlen key1
    hvals 作用:查看指定hash的全部的value hvals key1
    hget

    作用:查看指定hash的指定fieldd的值

    参数列表:

      key ...

      field 你要查询的键值对的键

    hget key1 name
    hgetall 作用:查看指定hash的全部键值对 hgetall key1
    hdel 作用:删除指定kye与field的value hdel key1 name

    六.redis的持久化

    Bgsave(backgruand save)用于后台异步保存数据到磁盘,这个命令会后台自动执行,

    save 持久化数据会阻塞主线程(不推荐)

    config set dir /user设置rdb文件保存路径(重启失效,推荐在xml里设置),默认在bin目录下

    redis的持久化文件类型有rdb与aof两种,rdb是二进制的,aof是字符类型的,aof与rdb同时存在就优先使用aof

    rdb持久化的优缺点:

      优点:

          1,压缩后的二进制文,适用于备份、全量复制,用于灾难恢复
          2,加载RDB恢复数据远快于AOF方式
        缺点:

          1,无法做到实时持久化,每次都要创建子进程,频繁操作成本过高
          2,保存后的二进制文件,存在老版本不兼容新版本rdb文件的问题

    aof持久化的流程:

        1,所有的写入命令(set hset)会append追加到aof_buf缓冲区中
        2,AOF缓冲区向硬盘做sync同步
        3,随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩
        4,当redis服务重启,可load加载AOF文件进行恢复

     

    关于aof持久化的相关配置的解释:

        appendonly yes //启用aof持久化方式
        appendfsync always //每收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
        appendfsync everysec //每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐
        no-appendfsync-on-rewrite yes //正在导出rdb快照的过程中,要不要停止同步aof
        auto-aof-rewrite-percentage 100 //aof文件大小比起上次重写时的大小,增长率100%时,重写
        auto-aof-rewrite-min-size 64mb //aof文件,至少超过64M时,重写

    七.其他命令

    Config get返回运行中readis的指定项目的配置信息 支持 *

    select 切换数据库

    dbsize返回当前数据库中key的数量

    info以一种易读的文本格式返回数据库的各种信息

    最后欢迎加入我自建的学习资料分享群,群里有各种免费的资料,java,大数据,汇编,分布式,数据库,框架等,网路安全等等,进群即可在文件中免费下载

    没有任何套路 ,群号:830101760

  • 相关阅读:
    一周好文(15)
    一周好文(13)
    宏定义中的 "#" 和 "##"
    一周好文(14)
    CCRenderTexture崩溃问题分析
    C++反射机制的实现(转)
    一周好文(16)
    opengl on mac
    uthash: a hash table for C strcutures
    CC3LineNode线条变色的问题
  • 原文地址:https://www.cnblogs.com/lollong/p/10692444.html
Copyright © 2020-2023  润新知