Version: Next

五大数据类型

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets) 与范围查询, bitmapshyperloglogs地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)

  • Redis-Key
  • String
  • List
  • Set
  • Hash
  • Zset

Redis-Key

exists 键:判断key是否存在

move 键 数据库索引 将指定键移动到指定数据库

expire 键 秒 指定某个键的过期时间

ttl 键 查看键的剩余过期时间

type 键 查看键的类型

String(字符串)

append 键 追加内容字符串追加

strlen 键获取字符串长度

incr 键自增1

decr 键自减1

incrby 键 步长自增步长

decrby 键 步长自建步长

getrange 键 开始 结束获取指定区间的字符串 左闭右闭

  • 查看完整字符串: getrange 键 0 -1

setrange 键 起始下标 新字符串类似与replace

setex 即 set expire设置过期时间

setex 键 过期时间 字符串

setnx 即 set if not exist,如果不存在则设置,如果存在不会修改为新值

常用于分布式锁

setnx 键 字符串

mset批量设置

mget批量获取

mset k1 v1 k2 v2 k3 v3 ...
mget k1 k2 k3

msetnx批量如果不存在设置,其中任何一个键设置失败则全部失败,原子性

设置以JSON字符串表示的对象

  • key设置为user:{id}:{field}
127.0.0.1:6379> mset user:1:name bsx user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "bsx"
2) "2"

getset先获取,再设置. 先返回当前值,再设置新值

List

在redis中,可以用list实现栈、队列。所有的list命令都是以l开头的

lpush 列表名 值 在list中插入数据,左插入

rpush 列表名 值 右插入

lrange 列表名 开始 结束

lpop 列表 从左侧弹出

rpop 列表 从右侧弹出

lindex 列表 下标 获取指定列表指定下标的元素

llen 列表 列表长度

lrem 列表 移除几个 键 移除指定个数个目标键

ltrim 列表 开始 结束 截断目标列表,范围内的值,从列表左侧起保留元素,范围外的右侧元素丢弃

rpoplpush 源列表 目标列表 从源列表的最右侧弹出一个元素,左侧添加到目标列表

lset 列表 指定下标 值 改变指定下标的值

linsert 列名 before|after 某个已存在的字符串 要插入的字符串

Set

sadd set名 值 向set中添加一个值

smembers set名 查看set中的值

sismember set名 成员 查看set中是否有某个元素

scard set名 查看set中元素个数

srem set名 元素 移除目标元素

srandmember set名 n 随机返回set中的一个n个元素

spop set名 随机弹出一个元素

smove 源set 目标set 某个成员值 从源set移动指定成员值到目标set

sinter set1 set2 set3... 返回指定set集合之间的交集

sdiff set1 set2 set3... 返回指定set集合之间的差集

sunion set1 set2 set3... 返回指定set集合的并集

Hash

Map集合

hset 哈希set名 键 值 向hash set中添加元素

hget 哈希set名 键 获取直指定hase set指定键的值

hmset 哈希set名 键 值 键 值 批量插入

hmget 哈希set名 键1 键2 键3 批量查询

hgetall 哈希set名 获取哈希set所有元素

hdel 哈希set名 键 删除指定键

hlen 哈希set名 获取hash set的长度

hexists 哈希set名 键 返回目标hash set集合中是否包含某键

hkeys 哈希set名 返回指定所有hash set的键

hvals 哈希set名 返回指定hash set的值

hincrby 哈希set名 键 增加几 指定键自增

hsetnnx 哈希set名 键 值 不存在则插入值,键存在则不插入

Zset(有序集合)

在set的基础上,增加了一个值,score,排序值。 zset k1 score1 v1

zadd set名 排序值1 值1 排序值2 值2... 添加元素

zrange set名 起始 结束

ZRANGEBYSCORE set名 起始 结束 在指定score范围内升序排序

  • ZRANGEBYSCORE zset1 -inf +inf 在zset1集合中按排序值从正无穷到负无穷排序
  • ZRANGEBYSCORE zset1 -inf +inf withscores 带上排序值一起显示

zrevrange set名 起始 结束 降序排序

zset set名 成员 移除指定成员值

zcard set命名 获取指定set的长度

zcount set名 起始 结束 获取指定区间的元素个数