YUKIPEDIA's blog

一个普通的XMUER

《Summer Pockets》久島鴎推し


Redis基础

目录

Redis简介

Redis 是一个基于内存key-value 结构数据库(mysql 的数据是存放在磁盘上)

  • 基于内存存储,读写性能高
  • 适合存储热点数据(热点商品、咨询、新闻等访问量比较大的数据)

Redis数据类型

Redis 存储的是 key-value 结构的数据,其中 key 是字符串类型,value 有 5 种常用的类型。

  • 5 种常用数据类型
    • 字符串 string
    • 哈希 hash
    • 列表 list
    • 集合 set
    • 有序集合 sorted set / zset
  • 各种数据类型的特点
    • 字符串(string):普通字符串,Redis 中最简单的数据类型
    • 哈希(hash):也叫散列,类似于 Java 中的 HashMap 结构
    • 列表(list):按照插入顺序排序,可以有重复元素,类似 Java 中的 LinkedList
    • 集合(set):无序集合,没有重复元素,类似于 Java 中的 HashSet
    • 有序集合(sorted set / zset):集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素

1.jpg

Redis常用命令

  • 字符串操作命令
    • SET key value :设置指定 key 的值(插入数据)
    • GET key :获取指定 key 的值
    • SETEX key seconds value :设置指定 key 的值,并将 key 的过期时间设为 seconds 秒(适用于短信验证码)
    • SETNX key value :只有在 key 不存在时设置 key 的值(分布式锁)

1.png

  • 哈希操作命令
    • HSET key field value :将哈希表 key 中的字段 filed 的值设为 value
    • HGET key field :获取存储在哈希表中指定字段的值
    • HDEL key field :删除存储在哈希表中的指定字段
    • HKEYS key :获取哈希表中所有字段
    • HVALS key :获取哈希表中所有值

1.png

  • 列表操作命令
    • LPUSH key value1 [value2] :将一个或多个值插入到列表头部(列表左侧)RPUSH 是插入到列表尾部(列表右侧)
      • 举个例子,执行 LPUSH mylist a b c 后,列表为:[c, b, a] (从头部插入)
    • LRANGE key start stop :获取列表范围内的元素
      • 执行 LRANGE mylist 0 -1 返回的是列表内的所有元素
    • RPOP key :移除并获取列表最后一个元素(列表右侧)
    • LLEN key :获取列表长度

1.png

  • 集合操作命令(是 string 类型元素的集合)
    • SADD key member1 [member2] :向集合添加一个或多个成员
    • SMEMBERS key :返回集合中的所有成员
    • SCARD key :获取集合的成员数
    • SINTER key1 [key2] :返回给定所有集合的交集
    • SUNION key1 [key2] :返回所有给定集合的并集
    • SREM key member1 [menber2] :删除集合一个或多个成员

1.png

  • 有序集合操作命令(是 string 类型元素的集合,每个元素会关联一个 double 类型的分数)
    • ZADD key score1 member1 [score2 menber2] :向有序集合添加一个或多个成员
    • ZRANGE key start stop [WITHSCORES] :通过索引区间返回有序集合中指定区间内的成员
    • ZINCRBY key increment member :有序集合中对指定成员的分数加上 increment
    • ZREM key member [member] :移除有序集合中的一个或多个成员

1.png

  • 通用命令(不分数据类型,都可以使用的命令)
    • KEYS pattern :查找所有符合给定模式(pattern)的 key
    • EXISTS key :检查给定 key 是否存在
    • TYPE key :返回 key 所存储的值的类型
    • DEL key :该命令用于在 key 存在时删除 key

1.png