本文目录如下:

  • 一、基础知识
  • 1.相关知识
  • 2.Redis五大数据类型
  • 二、Redis五大常用数据类型常用方法
  • 键(key) 常用方法
  • 字符串(String) 常用方法
  • 列表(List) 常用方法
  • 集合(Set) 常用方法
  • 哈希(Hash) 常用方法
  • Zset(集合) 常用方法


一、基础知识

LinuxRedis 启动过程详解


1.相关知识

  • Redis 默认设有 16 个库。
  • Redis 索引都是从 0 开始。
  • Redis 默认端口是 6379

2.Redis五大数据类型

  • string(字符串)
  • hash(哈希): string 类型的 字段(key)值(value) 的映射表,通常用来存储对象使用。
  • list(列表): string列表; 一般用于 消息队列缓存列表 等场景下。
  • set(集合): string类型的 无序集合,集合中不能出现重复的数据。
  • zset(sorted set:有序集合): string类型的 有序集合

二、Redis五大常用数据类型常用方法

键(key) 常用方法

# 查询库中所有数据
keys *

# 查看名称中包含 a 的键    
keys 'a*'

# 判断某个key是否存在
exists key1

# 查看一个key对应的数据是什么类型
type key

# 将某个数据移除到另一个库中,移除过后当前库中就没有此数据了
move key db

# 为给定的 key 设置 过期时间
expire key 秒钟

# 查看还有多少秒过期,-1表示永不过期,-2表示已过期
ttl key

字符串(String) 常用方法

# 设置值
set key value

# 获取值
get key

# 设置值 - 过期时长 (seconds: 有效时间)
setex key seconds value

# 设置多个键值
mset key1 value1 key2 value2 ...

# 同时获取多个key的value
mget k1 k2 k3

# 删除一个键
del key

# 为已有 key 对应的 value 添加字符串
append k1 '123456'

# 获取字符串长度
strlen key

# 数字自增1    #一定要是数字才能进行
incr key

# 数字自减1
decr key

# 数字添加指定数值
incrby key num

# 数字减去指定数值
decrby key num

# 获取指定区间范围内的值
# 从0到-1表示全部
getrange key 0 -1      #获取全部
getrange key 0 2       #0<=range<=3

列表(List) 常用方法

# 左侧连续插入数据 (lpush key value1 value2 ...)
lpush key 1 2 3

# 右侧连续插入数据 (lpush key value1 value2 ...)
rpush key 1 2 3

# 读出列表中所有数据
lrange key 0 -1

# 弹出列表左侧数据
lpop key

# 弹出列表右侧数据
rpop key 

# 按照索引下标获得元素(从左到右,下标从0开始)
lindex key 2

# 获得列表的长度
llen key 

# 删除N个value
lrem key 2 3     # 从列表 list02 中删除 2个 3

# 截取指定范围的值后再赋值给自身
ltrim key 0 4     # 0:开始index,4:结束index

# 将 list01 最右侧的值弹出并添加到 list02 最左侧
rpoplpush key1  key2 

# 为指定列表左侧开始第index个值设置新值
lset key index value

# 在指定值之前/之后插入value。左侧开始查找
linsert key before/after 值1 值2

List注意是事项:

  • 它是一个 字符串链表leftright 都可以 插入数据
  • 如果键不存在,创建新的列表;如果键已存在,增加内容。
  • 如果值全部移除,对应的键也就消失了。
  • 链表的操作无论是 效率都是极高的,但假如是对 中间元素 进行操作,效率就 相对较低

集合(Set) 常用方法

  • 集合 内部元素为 string类型
  • 元素具有 唯⼀性,不重复
  • 说明:对于集合 没有修改操作
# 向指定列表中添加元素,且自动去重sadd set01
sadd set01 1 1 2 2 3 3

# 查看 set集合 中所有元素
smembers set01

# 删除集合中的元素
srem set01 value

# 判断集合中是否包含指定元素
sismember set01 value

# 获取集合里面的元素个数
scard set01

# 从集合中随即抽取3个数
srandmember set01 3

# 数学集合2
# 求差集:sdiff  :在第一个set里面但不在后面任何一个set里面的项
sdiff set01 set02

# 求交集:sinter
sinter set01 set02

# 求并集:sunion
sunion set01 set02

哈希(Hash) 常用方法

K-V 模式不变,但 V 是一个键值对

# 向指定 key 中添加 K-V
hset user id 11
hset user name z3

# 获取指定key中key对应的元素
hget user id
hget user name

# 一次向指定key中插入多个键值对
hmset customer id 11 name xqz age 18

# 一次查询指定key中多个键的值
hmget customer id name age

# 获取指定 key 中所有 K-V
hgetall customer

# 删除指定 key 中的一个 key
hdel user name

# 获取指定 key 中 K-V 的数量
hlen user

# 获取指定 key 中所有的 K
hkeys customer

# 获取指定 key 中所有的 V
hvals customer

Zset(集合) 常用方法

  • set 基础上,加一个 score 值。
  • 之前 setk1 v1 v2 v3
  • 现在 zsetk1 score1 v1 score2 v2
# 向zset中添加元素
zadd zset01 60 v1 70 v2 80 v3

# 列出所有的 value
zrange zset01 0 -1

# 列出所有的 value 和 score
zrange zset01 0 -1 withscores

# 查询指定范围 score1<=x<=score2 内的value
zrangebyscore zset01 60 90

# 查询指定范围 score1<x<score2 内的 value
zrangebyscore zset01 (60 (90

# 删除指定集合中的指定元素
zrem zset01 v5

# 统计指定集合中 V 的个数
zcard zset01

# 统计指定范围内 V 的个数
zcount zset01 60 80

# 获取V在集合中对应的score
zscore zset01 v4