五大数据类型
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-KeyStringListSetHashZset
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名 起始 结束获取指定区间的元素个数