redis 基本数据类型及使用

秒速五厘米 2022-04-12 12:53 887阅读 0赞

文章目录

    • 相对其它 nosql 数据库的优势
    • 杂项知识
    • 基本数据类型
    • Key 关键字
    • String 类型(单键单值)
    • List 类型 (单键多值)
    • Set 类型 (单键多值)
    • Hash类型 (KV模式,V是一个键值对)
    • Zset类型 (KV模式,V是一个键值对)

相对其它 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 关键字

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

String 类型(单键单值)

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

List 类型 (单键多值)

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

Set 类型 (单键多值)

  1. -- 添加一个或者对个值,对于重复添加的值,不会爆错,但是会自动额过滤掉
  2. sadd key value[s] ;
  3. -- 列出 key 的所有 value
  4. smembers key
  5. -- 判断 value 在不在 key 里面
  6. sismember key value
  7. -- 获取集合中的元素个数
  8. scard key
  9. -- 删除集合中的元素
  10. srem key value
  11. -- set 里面随机出 num 个整数
  12. srandmember key num
  13. -- 随机出栈一个数
  14. spop key
  15. -- key1 里面的某个 value1 添加到 key2 里面
  16. smove key1 key2 value1
  17. -- 差集 以第一个为参照,在第一个里面,不在后面任何一个里面
  18. sdiff key1 key2 ...keyN
  19. -- 交集
  20. sinter key1 key2 ...keyN
  21. -- 并集
  22. sunion key1 key2 ...keyN

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

  1. -- 常用的操作
  2. hset hget hmset hmget hgetall hdel
  3. -- hash key 对应的 键值对 数量
  4. hlen
  5. -- 某个 key 对应的KV里面,是否存在要找的 K
  6. hexists key K-V-K
  7. -- 获取 key 对应的键值对的所有键
  8. hkeys key
  9. -- 获取 key 对应的键值对的所有值
  10. hvals key
  11. -- key K-V-V 数值进行增减
  12. hincrby/hincrbyfloat key K-V-K num
  13. --
  14. hsetnx key K-V-V value

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

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

发表评论

表情:
评论列表 (有 0 条评论,887人围观)

还没有评论,来说两句吧...

相关阅读