Redis 基础命令和五大基本类型

Redis 默认有 16 个数据库

默认使用的是第 0 个数据库

不同数据库存不同的值

数据库命令

切换数据库

# 切换到第几个数据库
select 1

查看数据库大小

#返回数据量
dbsize

清空当前库

flushdb

清空所有库

flushall

键命令

查看当前数据库所有键

keys *

判断键是否存在

exists 键名称

键移动到其他数据库

move 键名称 数据库编号

设置键生存时间

expire 键名称 时间(秒)
# 时间内的值
setex 键名称 生存时间 值

查看键生存时间

ttl 键名称

查看键类型

type 键类型

String类型

赋值

直接赋值

set 键名称 "内容"

不存在才赋值

setnx 键名称 "内容"

批量赋值

mset 键名称1 "内容" 键名称2 "内容" ...

原子性批量赋值

#都不存在才会赋值
msetnx 键名称1 "内容" 键名称2 "内容" ...

设置对象

set user:1 {name:sail,age:27}
# get user:1
# "{name:sail,age:27}"
# 值为 Json 字符串来保存一个对象。

取值

直接取值

get 键名称

先取值,再赋值

getset 键名称 "内容"
# 会返回原来值

追加字符串

追加字符串

append 键名称 "内容"

判断key是否存在

判断key是否存在

exists 键名称

获取字符串长度

获取字符串长度

strlen 键名称

自增

自增 1

incr 键名称

自增 自定义长度

incrby 键名称 长度

自减

自减 1

decr 键名称 "内容"

自减 自定义长度

decrby 键名称 长度

截取字符串

截取指定下标的字符串 (含头含尾) 若为 0 -1 则是截取全部

getrange 键名称 x x+1
getrange 键名称 0 -1

替换字符串

替换指定位置开始的字符串 以覆盖来替换

setrange 键名称 位置 "内容"

设置过期

设定过期替换

setex 键名称 时间 "内容"

查看过期剩余时间

返回剩余时间 若返回-2,代表已过期,值为空

ttl 键名称

List类型

在 Redis 里面,可以把 List 当成队列阻塞队列使用。

list 实际是一个链表,左右都可以插入值。

如果 key 不存在,创建新的链表。

如果移除了所有元素,空链表也代表不存在。

在两边插入或者改动值,效率最高;操作中间元素,效率相对低一些。

应用场景:消息排队

插入

从左插入

lpush 键名称 内容 内容
# 键名称如不存在自动创建

从右插入

rpush 键名称 内容 内容
# 键名称如不存在自动创建

在指定元素前后插入值

linsert 键名称 brfore/after 键值 插入的键内容

移除

从左移除

lpop 键名称

从右移除

rpop 键名称

移除指定元素

lrem 键名称 移除个数 键值

查看

查看列表中所有元素

lrange list 0 -1

查看指定小标范围元素

lrange list 1 2
#含头含尾

查看列表长度

llen 键名称

查看列表是否存在

exists 键名称

截取

截取指定下标的元素

ltrim 键名称 X X+1

移动

移除最后一个元素并添加到新列表中

rpoplpush 键名称 新键名称

赋值

指定下标赋值

lset 键名称 下标 内容

set类型

不重复的类型

赋值

插入值

sadd 键名 内容

取值

所有元素

smembers

元素是否存在

sismember 键名 内容
#存在返回1,不存在返回0

元素个数

scard 键名

随机元素

srandmember

两个集合的差集

sdiff 键名1 键名2
#返回1中2没有的值

两个集合的交集

sinter 键名1 键名2
#返回键1和键2的交集

两个集合的并集

sunion 键名1 键名2
#返回键1和键2中的所有元素(不重复)

删除

指定元素

srem 键名 键内容

随机元素

spop 键名

移动

指定元素到其他集合

smove 键名1 键名2 内容
#移动键名

hash(哈希)

key-map的数据结构

赋值

单个哈希

hset 键名 key value

多个哈希

hmset 键名 key1 value1 key2 value2 ...

不存在才赋值

hsetnx 键名 key value

自增

hincrby 键名 key 值
#正数时增加,负数是键

取值

单个哈希

hget 键名 key

多个哈希

hmget hash key1 key2

所有值

hgetall 键名

所有key

hkeys 键名

所有value

hvals 键名

长度

hlen 键名

判断

字段是否存在

hexists 键名 key

删除

指定字段

hdel 键名 key

zset有序集合

zset就是set的有序集合

赋值

一个或多个元素

zadd 键名 1 内容 2 内容

取值

正序查询指定下标范围

zrange 键名 0 1
#0 -1 指所有

倒叙查询指定下标范围

zrevrange 键名 0 1
#0 -1 指所有

元素个数

zcard 键名

指定区间元素数量

zcount 键名 1 3
#1是从第一个开始,没有第零个

排序

正序

zrangebyscore 键名 -inf +inf
#从正无穷到负无穷
zrangebyscore 键名 -inf +inf
#排序结果撒谎给你带上分数

倒叙

zrevrangebyscore 键名 +inf -inf

删除

指定元素

zrem 键名 键内容
文章作者: 郭远
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 郭远的博客空间
Redis Redis
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝