redis五大基本数据类型详解

本文详细介绍了 Redis 中的各种数据操作,包括 String、List、Set 和 Hash 的常用命令,如 SET、GET、KEYS、SHUTDOWN、EXISTS、EXPIRE、TTL、TYPE 等,以及 List 的 LPOP、RPOP、LINDEX、LREM 等,Set 的 SADD、SMEMBERS、SREM 等,Hash 的 HSET、HGET、HGETALL、HDEL 等,Zset 的 ZADD、ZRANGE、ZREM 等。这些命令涵盖了数据的增删改查以及时间管理和类型检查等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis 基本操作

在redis 中命令不区分大小写

set name myredis (创建key)

get name(获取key值)

keys * (查看所有键值对)

shutdown(关闭redis)

exit(退出redis)

EXISTS keyname (判断key 是否存在)

move keyname 1 移除当前key

EXPIRE keyname number (设置key存在时间 单位是秒s)

ttl keyname (查看当前key的剩余时间)

type keyname (查看key的数据类型)

string

append 追加字符串,如果当前KEY  不存在,就相当于set key

strlen 获取字符串长度

Views 步长

Incr views 设置自增量

   decrby views 设置自减量

  

   getrange keyname 0  x 截取字符串   默认下标为0 截取全部字符串时x=-1

  

   setrange keyname x  aaa  替换指定位置开始的字符串

  

   setex 设置key 过期时间

  

   setnx  不存在设置  

  

   mset 可以设置到一个对象的多个key值

   mget可以获取到一个对象的多个key值

  

   getset  db redis 先获取到key的值再重新设置key的值  如果值不存在返回nil 如果存在 就先返回当前值

    

list

list结构图

List的多有命令都是以L开头的

lpush list one  将one 放入列表中,放入到表头部(左边)

lrange list 0 -1 获取列表list 中所有的值

rpush list righr  将值righr 放入到列表尾部(右)

lpop 移除列表左边的第一个元素

rpop 移除列表右边的第一个元素

lindex list 0  通过下标获取list中第一个值

llen list 返回列表长度

lrem 移除指定的值 用法  lrem  [指定list] [移除的个数] [具体的值]

ltrim 通过下标截取指定长度的值  用法 ltrim [指定list] [范围]

rpoplpush 移除指定列表右边第一个元素并将它写入到指定列表左边第一个 用法  rpoplpush [移除的指定列表] [写入的指定列表]  #如果写入的指定列表不存在,系统会自动创建一个列表

lset 将列表中指定下标的值替换为另一个值,相当于一个更新操作 #执行前需要先判断该列表或值存不存在 不存在则该操作无法执行  用法 lset [指定列表] [指定下标] [指定替换后的值]

linsert 将某一个具体的值插入到列表中某一个值的前面或者后面 用法  linsert [指定列表] [选择插入到前面(before)或者后面(after)] [被插入的值] [插入值]

set

#set无序且不能重复

sadd  向set中添加元素  用法 sadd  [set名] [元素]

smembers 查看指定set的所有值 用法 smembers [指定的set]

sismember 判断有一个元素在指定的set中是否存在 用法 sismember [指定的set] [要查看的元素]

scard 获取set中的元素个数  用法 scard [set名]

srem 移除指定set中指定的元素 用法 srem [指定的set] [指定的元素]

srandmember 随机抽选出指定个数的元素  用法 srandmember [指定的set] [指定的个数,不是必选项,不给出指定个数时,默认个数为一]

spop 随机移除指定set中的元素  用法 spop [指定的set]

smove 将一个set中的指定元素移动到另一个set中 用法 smove [指定元素所在的set] [移动的目标set] [指定的元素] 目标元素不存在时会自动创建一个set集合

sdiff 多个set之间的差集  用法 sdiff [set1] [set2]

sinter 多个set之间的交集 用法同上

sunion 多个set之间的并集 用法同上

Hash

可以将Hash看成一个map集合 本质上和string类型没有太大区别 只是存的值是hash类型的

hset 创建hash类型的值  用法 hset [hash表名] [字段名(相当于key)] [值 (相当于vlaue)]

        

hget 获取到某一个字段的hash值 用法 hget [指定的hash表名] [key]

hmset 创建多个字段的hash值 用法参考Hset

hmget 获取多个字段的hash值 用法参考 hget

hgetall 获取指定hash表中所有的key-vlaue 用法 hgetall [hash表名]

hdel 删除指定hash表的指定key  vlaue值也随之删除了 用法 hdel [指定的hash表] [指定的key]

hlen 获取hash表的字段数量 用法 HLEN [指定的hash表]

hexists 判断hash中指定的字段(key)是否存在 用法 hexists [hash表名] [字段(key)]

hkeys 获取指定hash表中所有的字段(key) 用法 hkeys [hash表名]

hvals 获取指定hash表中所有value 用法同上

hincrby 指定增量或减量 用法 hincrby [hash表名] [字段名(key)] [增量或减量]

hsetnx 判断hash表中指定字段是否存在 存在则不能设置值 如果不存在则可以设置值 用法 hsetnx [hash表] [指定字段] [值]

Zset (有序集合)

Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但分数(score)却可以重复。

 zadd 向集合中添加元素 用法 zadd [集合名] [number(分数)] [用户]

 zrangebyscore 显示全部用户 (以分数大小来进行递增排序)  用法 zrangebyscore [指定集合] -inf +inf (-inf 负无穷 代表最小值 +inf 正无穷 代表最大值)  +withscores 可排序且显示分数   -inf +指定分数 +withscore 则显示为 指定分数下的用户

指定范围

Zrevrange 递减排序  用法同上

zrem 移除集合中的指定元素 用法 zrem [集合] [指定元素]

zcard 获取指定集合的元素个数 用法 zcard [集合名]

zcount 获取指定区间的元素个数 用法 zcount [指定集合] [区间] #区间为闭区间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值