• redis 基本数据类型及使用



    相对其它 nosql 数据库的优势

    1. 支持数据的持久化,可以将内存中的数据保存到磁盘中,下次重启以后再加载回内存 ;
    2. 支持更多的数据类型,除了 KV 以外,还有 list set hash zset 等 ;
    3. 支持数据的备份,主从模式的数据备份

    杂项知识

    1. 单线程

    2. 默认是16个数据库,初始使用第 0 数据库 ;

      数据库之间的切换:select dbid

    3. dbsize 查看当前数据库 key 的数量 ;

      查看所有key的内容: keys *

      也支持模糊查询的 ;

    4. Flushdb 清空当前库 ;

    5. flushall : 通杀所有库 ;

    6. 统一密码:所有的数据库,都是使用同一个密码 ;

    7. redis索引,都是从零开始 ;

    8. 端口号为6379的故事:手机键盘 MERZ


    基本数据类型

    1. String

      redisstring 是二进制安全的,也就是它可以包含任何东西,比如jpg图片或者序列化对象 ;

      对应的 value,最多可以保存 512 M数据 ;

    2. Hash

    3. List ,底层是个链表 ;

    4. Set

    5. Zset

    对于其中的 key ,每一个 key 就是一个对象 ;


    Key 关键字

    -- 列出所有的key
    key * 
    -- 判断某个 key 是否存在
    exists key 
    -- 剪切操作,将当期的 key 移动到指定的数据库
    move key db
    -- 为给定的 key 设置过期时间,按照 秒 计算
    expire key s 
    -- 查看 key 还有多少秒过期,-1 永不过期,-2 已过期
    ttl key
    -- 查看 key 是什么类型
    type key 
    -- 删除 key 
    del key
    

    String 类型(单键单值)

    -- 在 key 末尾追加字符串
    append 
    -- 获取字符串的长度,字符数
    strlen
    -- key 值每次加/减去 1,下面的几个数值的操作,value 必须是数值 
    incr/decr key
    -- 一次性加/减 num 
    incrby/decrby key num
    -- 获取指定区间的值,取字符串的多少位到多少位 ,角标从 0 开始,-1 表示到最后
    getrange key begin end 
    -- 从指定位开始,插入 value ,会覆盖掉后面的数据
    setrange key index value 
    -- 设置 key 的缓存时间
    setex key time value 
    -- 创建 key 的时候,判断下是否存在,如果存在,则不创建
    setnx key value 
    -- 一次性对多个值进行操作,但是如有一个操作失败,则全部失败 
    mset/mget/msetnx
    

    List 类型 (单键多值)

    -- 从两端插入数据
    lpush/rpush key values 
    -- 遍历 key 角标从零开始,-1 表示到最后
    lrange key begin end 
    -- 从两端取值
    lpop/rpop
    -- 根据角标获取对应的值
    lindex key index
    -- 获取 key 长度,也就是 value 的个数
    llen key 
    -- 删除对应 key 的 N 个 相同的value
    lrem key N value 
    -- 截取指定范围的值,然后再次赋值给 key
    ltrim key begin end 
    -- 把源右边的拿走,放到目的的左边
    rpoplpush orignalLsit newList
    -- 改变具体下标对应的值
    lset key index value
    -- 在 key 的某个位置插入 value
    linsert key before/after origanl new 
    

    Set 类型 (单键多值)

    -- 添加一个或者对个值,对于重复添加的值,不会爆错,但是会自动额过滤掉 ;
    sadd key value[s] ;
    -- 列出 key 的所有 value 
    smembers key
    -- 判断 value 在不在 key 里面
    sismember key value 
    -- 获取集合中的元素个数
    scard key
    -- 删除集合中的元素
    srem key value
     -- 在 set 里面随机出 num 个整数
     srandmember key num
     -- 随机出栈一个数
     spop key
     -- 将 key1 里面的某个 value1 添加到 key2 里面
     smove key1 key2 value1 
    
    -- 差集 以第一个为参照,在第一个里面,不在后面任何一个里面
    sdiff key1 key2 ...keyN
    -- 交集
    sinter  key1 key2 ...keyN
    -- 并集
    sunion key1 key2 ...keyN
    
    
    

    Hash类型 (KV模式,V是一个键值对)

    -- 常用的操作
    hset hget hmset hmget hgetall hdel 
    -- hash 的key 对应的 键值对 数量
    hlen 
    -- 某个 key 对应的KV里面,是否存在要找的 K
    hexists key K-V-K
    -- 获取 key 对应的键值对的所有键 
    hkeys key
    -- 获取 key 对应的键值对的所有值
    hvals key 
    
    -- 对key 的 K-V-V 数值进行增减
    hincrby/hincrbyfloat key K-V-K num
    -- 
    hsetnx key K-V-V value
    
    
    

    Zset类型 (KV模式,V是一个键值对)

    -- 添加、创建元素
    zadd key score1 value1 score2 value2 ... scoreN valueN 
    -- 取值
    zrange key begin end [withscores]
    -- ( 不包含 还可以选择限制显示的数量
    zrangebyscore key [(]beginScore [(]endScore [limit beginIndex num ]
    -- 删除元素
    zrem key K-V-V
    -- 返回 键值对的数量
    zcard key 
    -- 计算在某个区间内的键值对的个数
    zcount key score1 score2 
    -- 获取 K-V-V 的下标值
    zrank key K-V-V
    -- 获取对应的 K-V-V 对应的 score 
    zscore key K-V-V 
    -- 逆序获取下标值
    zrevrank key K-V-V 
    -- 逆序输出
    zrevrange key beginindex endindex
    -- 从高到低 输出对应的分数对应的
    zrevrangebyscore key highScore lowScore
    

  • 相关阅读:
    Keepalived案例一:Keepalived双机热备(HA)精讲
    Linux服务器挂载ntfs移动硬盘
    RAC 单节点实例异常关闭,关键报错ORA--29770
    模拟等待事件:db file sequential read
    使用dbms_stats.gather_table_stats调整表的统计信息
    oracle rac常用的网络检查命令
    收集Oracle数据库中的SQL基线信息(一)基础信息收集
    Oracle 通过sql profile为sql语句加hint
    将指定SQL的执行计划从共享池删除的方法
    数据库什么时候建立索引?
  • 原文地址:https://www.cnblogs.com/young-youth/p/11665620.html
Copyright © 2020-2023  润新知