五大数据类型
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(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 2OK127.0.0.1:6379> mget user:1:name user:1:age1) "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名 起始 结束
获取指定区间的元素个数