本文介绍: rediskv键值对进行存储这里数据类型value数据类型key类型都是字符串,Redis 字符串(String),Redis列表(List),Redis哈希(Hash),Redis集合(Set),Reids有序集合(Zset),以及他们五个的应用场景朋友圈点赞、销量排名、可能认识的人、对商品进行排序显示功能

rediskv键值对进行存储这里数据类型value数据类型key类型都是字符串
在这里插入图片描述

keys *  		//当前库的所有key
exists key      //判断某个key是否存在
type key        //查看你的key什么类型
del key         //删除指定key数据
unlink key      //非阻塞删除,仅仅将keys从keyspace数据删除,没真正的删除会在后续异步操作
ttl key         // 查看还有多少过期 -1表示永不过期 -2 表示过期
expire key 秒    // 给key设置过期时间
move key dbindex [0-15]   // 将当前数据库的key移动指定数据库redis默认是有16个数据库
select dbindex [0-15]   // 切换数据库[0-15],默认为0
dbsize   			// 查看当前数据库key的数量
flushdb         		// 清空当前
flushall 			// 清空16个数据库 慎用

命令不区分大小写,而key的值是区分大小写

help @+数据类型出现命令提示 比如 help @string

3.1 Redis 字符串(String

在这里插入图片描述

常用
set key value ex 20   // 设置值 20秒过期
get key   // 获得对应的值

在这里插入图片描述

同时设置/获取多个键值
MSET [key1] [value1] [key2] [value2] [key3] [value3]  // 同时设置一个或多个键值
MGET [key1] [key2] [key3]  // 同时获取多个key的值
MSETNX [key1] [value1] [key2] [value2]  // 同时设置一个或多个 key-value 对  必须保证key都不存在才能成功
获取指定区间
GETRANGE [key] 0 -1  // 获取这个key的值的全部
GETRANGE [key] 0 2   // 获取这个key的值索引0到索引2之间的值
SETRANGE [key] 1 xxx  // 设置指定区间范围内的值

在这里插入图片描述

数值增减
INCR [key]    // 递增数字 +1
INCRBY [key] [increment]   // 增加指定整数  +increment 
DECR [key]   // 递减数字 -1
DECRBY [key] [increment]   // 减少指定的整数  -increment 
获取字符串长度内容相加
STRLEN [key]        // 获取key对应的值的长度
APPEND [key] [vale]   // 添加字符串内容
分布式
setnx/setex [key] [过期时间] [value]  // 设置带过期时间的key,动态设置
setnx [key] [value] // 只有在 key 不存在时设置 key 的值。
// 一般是两个命令连用,写成lua脚本连用,具体在Redis高级分布式锁中使用
getset(先getset)
getset [key] [value]  // 给定 key 的值设为 value ,并返回 key 的旧值
应用

3.2Redis列表(List)

单key多vlue

结构

在这里插入图片描述

常用命令

在这里插入图片描述

lpush [key] [value] ...  // 往 列表头部(左边放入元素
Rpush [key] [value] ...  // 往 列表右边放入元素
lrange [key] 0 -1      // 从左边开始遍历列表  只能从左边遍历
lpop [key]           // 最左边出栈就是lrange遍历第一个
rpop [key]           // 最右边的出栈就是lrange遍历最后一个
lindex [key] [index]  // 通过索引值获取值
llen [key]    // 获得元素个数
lrem [key] [num] [value]  // 从左往右删除 num值为 value的值
lrem [key] 0 [value]  // 从左往右删除所有值为value的值
ltrim [key] [开始] [结束] // 截取指定范围的值后再赋给[key],也就是删除这个区间外的值
RPOPLPUSH [key1] [key2]  //移除列表的最后一个元素,并将该元素添加到另一个列表的第一个返回
lset [key] [index] [value]   //将key的第 index索引改为value
linsert [key] before/after [value1] [value2] // 在list某个已有值的前后添加具体值
应用场景

3.3 Redis哈希(Hash

k-v 模式不变,但v是一个键值对 =&gt; Map&lt;String,Map<Object,Object>

常用命令

在这里插入图片描述

hset/hget/hmset/hmget/hgetall/hdel

在这里插入图片描述

hlen   // 获取在某个key内的全部数量
hexists [key] [k1]   // 看key中是否有k1这个
hkeys [key]    // 获取key里面的所有key
hvals [key]    // 获取key里面的所有value
hincrby [key] k1 [num] // key里面k1的值增长num 整数
hincrbyfloat [key] k1 [num] // key里面k1的值增长num 小数
hsetnx [key] k1 [value] // 不存在赋值存在无效
应用场景

3.4 Redis集合(Set)

单值多value,无重复

常用
SADD key member ...   // 添加元素
SMEMBERS key      // 遍历集合中所有元素
SISMEMBER key member    // 判断元素是否在集合
SREM key member ...     // 删除元素
SCARD  key          // 获取集合长度
SRANDMEMBER key m   // 从set集合里面随机取出m个    如果超过最大数量就全部取出   如果写的值是负数,比如-3 ,表示需要取出3个,但是可能会有重复值    不会删除
SPOP key m   // 从集合中随即弹出一个元素  出一个删一个
SMOVE key1 key2 在key1里已存在的某个值  // 将key1的已存在的某个值赋给key2
集合运算
SDIFF keyA keyB     // A - B  属于A但不属于B的元素构成的集合
SUNION keyA keyB    // A U B  属于A或者属于B的元素合并后的
SINTER keyA keyB    // A ∩ B  属于A同时属于B
SINTERCARD numkeys keyA keyB [LIMIT limit] // 不返回结果集,只返回结果的基数
应用

3.5Reids有序集合(Zset)

注意:Zset和set的区别,就是在set的基础上加了一个score分数值。

  • set k1 v1 v2 v3
  • Zset k1 score1 v1 score2 v2
常用

在这里插入图片描述

ZADD key score member [ score member ] // 添加元素
ZRANGE key start stop [WITHSCORES] // 返回元素分数从小到大顺序   返回索引从start到stop之间的所有元素
ZREVRANGE key 0 - 1 [WITHSCORES]   // 反序
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] // 获取指定分数范围的元素  (minmax) 不包含   limit返回限制返回多少个 
ZSCORE key member     // 获取元素的分数
ZCARD key             // 获取集合中元素的数量
ZREM key 某score对应的value值   // 删除元素
ZINCRBY key increment member    // 增加某个元素的分数
ZCOUNT key min max     // 获得指定分数范围内的元素个数
ZRANK key values// 获得下标
ZREVRANK key values    // 逆序获得下标值、

ZMPOP numkeys key [key …] <MIN | MAX> [COUNT count]

应用

原文地址:https://blog.csdn.net/m0_55993923/article/details/129426800

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43638.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注