redis原理及使用

2022-12-10  本文已影响0人  蓝调_4f2b

一. 基本数据结构

  1. 数据结构类型
    string, hash, list, set, zset

  2. String 类型
    (1)基本操作
    SET key value. // 存入字符串键值对
    MSET key value [key value ...] // 批量存储字符串键值对
    GET key // 获取一个字符串键值
    DEL key [key ...] // 删除一个键
    EXPIRE key seconds // 设置一个键的过期时间(秒)
    (2)原子操作
    INCR key // 将key中储存的数字值加1
    DECR key // 将key中储存的数字值减1
    INCRBY key increment // 将key所储存的值加上increment
    DECRBY key decrement // 将key所储存的值减去decrement
    (3)对象缓存
    SET user:1 value(json格式数据)
    (4)分布式锁
    SETNX product:10001 true //返回1代表获取锁成功
    SETNX product:10001 true //返回0代表获取锁失败
    。。。
    执行业务操作
    DEL product:10001 //执行完业务释放锁
    SET product:10001 true ex 10 nx //防止程序意外终止导致死锁
    (5)应用场景

  1. Hash类型
    (1)常规操作
    HSET key field value // 存储一个哈希表key的键值
    HGET key field //获取哈希表key对应的field键值
    HMGET key field [field ...] //批量获取哈希表key中多个field键值
    HGETALL key //返回哈希表key中所有的键值
    (2)应用场景
  1. List结构
    (1)常用操作
    LPUSH key value [value ...] //将一个或多个值value插入到key列表的表头(最左边)
    RPUSH key value [value ...] //将一个或多个值value插入到key列表的表尾(最右边)
    LRANGE key start stop //返回列表key中指定区间内的元素
    (2)组合成常用数据结构
    Stack = LPUSH + LPOP
    Queue = LPUSH + RPOP
    Blocking MQ = LPUSH + BRPOP
    (3)应用场景
    微博消息及微信公众号
    LPUSH msg:{诸葛老师-ID} 10018
    LPUSH msg:{诸葛老师-ID} 10086
    LRANGE msg:{诸葛老师-ID} 0 4

  2. Set类型
    (1)常规操作
    SADD key member [member ...] //往集合key中存入元素
    SMEMBERS key //获取集合key中所有元素
    SCARD key //获取集合key的元素个数
    (2)Set集合运算


    Set集合运算.png
  1. Zset有序集合
    为每一个插入元素带上分值,底层使用了跳表实现
    (1)常规操作
    ZADD key score member [[score member]…] //往有序集合key中加入带分值元素
    ZREM key member [member…] //从有序集合key中删除元素
    ZSCORE key member //返回有序集合key中元素member的分值
    (2)集合操作
    ZUNIONSTORE destkey numkeys key [key ...] //并集计算
    ZINTERSTORE destkey numkeys key [key…] //交集计算
    (3)应用场景

redis I/O多路复用模型

I/O多路复用模型.png
上一篇下一篇

猜你喜欢

热点阅读