Redis的常用命令和数据结构

Redis数据结构

字符串

redis 字符串
字符串可以存储以下3种类型的值

  1. 字符串
  2. 整数
  3. 浮点数

常用命令:

  • SET
  • GET
  • DEL

因为可以存储整数和浮点数,所以还可以对字符串执行自增和自减命令

  • INCR
  • DECR
  • INCRBY
  • DECRBY
  • INCRBYFLOAT

字符串也可以像python一样操作子串

  • APPEND
  • GETRANGE
    // 切片操作
    GETRANGE key 0 -1
  • SETRANGE
    // 使用 val 替换 从n开始的字符串, 这里的 n 为正整数
    SETRANGE key n val

还可以把字符串当成二进制位操作 (这里比较复杂,需要研究一下)

  • GETBIT
  • SETBIT
  • BITCOUNT
  • BITTOP

列表

redis 列表
常用命令:

  • RPUSH
  • LPUSH
  • RPOP
  • LPOP
  • LINDEX
  • LRANGE
  • LTRIM
  • LPOP
  • LLEN

将一个列表的元素移动到另一个列表

  • RPOPLPUSH

阻塞性的弹出命令和元素移动命令,这里的阻塞指的是: 阻塞(block)执行命令的客户端,直到有其他客户端给列表添加元素为止 (这个阻塞是有超时时间的,不会阻塞到底)

  • BLPOP
  • BRPOP
  • BRPOPLPUSH

集合

Redis的常用命令和数据结构

常用命令:

  • SADD
  • SREM
  • SISMEMBER
  • SCARD
  • SMEMBERS
  • SRANDMEMBER
  • SPOP
  • SMOVE

组合和处理多个集合的命令:

  • SDIFF
    SADD key_1 1 2 3 4
    SADD key_2 4 5 6 7
    SDIFF key_1 key_2 
    // ['1', '2', '3']
  • SDIFFSTORE
    SDIFFSTORE key_3 key_1 key_2 
    SMEMBERS key_3
    // ['1', '2', '3']
  • SINTER
    SINITER key_1 key_2
    // ['4']
  • SINTERSTORE
    SINTERSTORE key_4 key_1 key_2
    SMEMBERS key_4
    // ['1', '2', '3']
  • SUNION
    SUNION key_1 key_2
    // ['1', '2', '3', '4', '5', '6', '7']
  • SUNIONSTORE
    SINTERSTORE key_5 key_1 key_2
    SMEMBERS key_5
    // ['1', '2', '3', '4', '5', '6', '7']

散列

Redis的常用命令和数据结构

常用命令:

  • HGET
  • HSET
  • HMGET
  • HMSET
  • HDEL
  • HLEN

一些高级操作

  • HEXISTS
  • HKEYS
  • HVALS
  • HGETALL
  • HINCRBY
  • HINCRBYFLOAT

有序集合

和散列存储着键与值之间的映射类似,有序集合也存储着成员与分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序地获取(fetch)或扫描(scan)成员和分值的命令。
Redis的常用命令和数据结构

常用命令

  • ZADD
  • ZREM
  • ZCARD
  • ZINCRBY
  • ZCOUNT
  • ZRANK
  • ZSCORE
  • ZRANGE

有序集合的一些高级操作

  • ZREVRANK
    ZADD words 1 a 2 b 3 c
    ZREVRANK words c
    // 0
    ZREVRANK words a
    // 2
  • ZREVRANGE
    ZREVRANGE words 0 1
    // ['c', 'b']
  • ZRANGEBYSORE
    ZRANGEBYSCORE words 0 1
    // ['a']
  • ZREVRANGEBYSCORE
  • ZREMRANGEBYRANK
  • ZREMRANGEBYSCORE
  • ZINTERSTORE
  • ZUNIONSTORE

排序

redis 可以通过 SORT 命令根据字符串 列表 集合 有序集合 散列 这五种键里面存储着的数据, 对列表 集合 以及有序集合进行排序。

  • SORT
    RPUSH sort-input 23 15 110 7
    SORT sort-input
    // ['7', '15', '23', '110]
    SORT sort-input alpha
    // ['110', '15', '23', '7']
    HSET d-7 field 5
    HSET d-15 field 1
    HSET d-23 field 9
    HSET d-110 field 3
    SORT sort-input by='d-*->field'
    // ['15', '110', '7', '23']
    SORT sort-input BY='d-*->field' get='d-*->field'
    // ['1', '3', '5', '9']

事务

redis事务不会像关系型数据库的事务一样可以回滚。 这里的事务主要是让一个客户端在不被其他客户端打断(interruption)的情况下执行多个命令 (因为这里的多个命令可以操作多个数据类型,所以事务就可以不被打断的操作多个类型的数据, 简单来说就是相当于把多个数据类型的多个命令变成了一个类似 LPOP 的单个命令)。 它会将 MULTI 和 EXEC 命令包围的的所有命令一个接一个地执行, 直到所有命令都执行完毕为止。只有当一个事务执行完毕时,redis 才会处理其他客户端的命令。

常用命令

  • MULTI
  • EXEC
  • WATCH
  • UNWATCH

键的过期事件

常用命令

  • PERSIST
  • TTL
  • EXPIRE
  • EXPIPEAT
  • PTTL
  • PEXPIRE
  • PEXPIPEAT

发布订阅

常用命令

  • SUBSCRIBE
  • UNSUBSCRIBE
  • PUBLISH
  • PSUBSCRIBE
  • PUNSUBSCRIBE
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!