02_Redis之数据类型及操作

news/2025/3/27 16:21:38/文章来源:https://www.cnblogs.com/Invinc-Z/p/18792245

02_Redis之数据类型及操作

image-20240412150210121

一、String类型及操作

是二进制安全的,可以存放任意类型的数据。

# 设置与获取值
set k1 value1
get k1# 设置key对应的值为string 类型的value。如果key已存在,返回0,nx 是 not exist 的意思
setnx k1 value2 # 设置key对应的值为string 类型的value,并指定此键值对应的有效期
setex k3 10 value3 # 设置子串
setrange key offset value  # 获取子串
getrange key start end    #如果想找到最后一个可以使用-1# 一次设置多个key值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置
mset k2 value2 k3 value3 k4 value4...# 一次获取多个key值
mget k1 k2 k3 ....# 设置key的值,并返回key的旧值
getset key value # incr/incyby  增加的key的value必须是数值类型
# decr/decrby  减少的key的value必须是数值类型# 追加字符串
append key value# 取字符串长度
strlen key

二、Hash类型及操作

字典,Key-value模式不变,key对应字典名字,但value是一个键值对,等价于 map<key, map<key1, value>>

# 添加元素
hset key field value [field value] # 返回值为成功设置的字段数量
hsetnx key field value [field value]
hmset key field value [field value] # 返回值始终为ok 更推荐使用hset#获取元素
hget key field #设置与获取多个
hmset/hmget# 指定field加上给定值
hincrby key field increment # 测试指定field是否存在
hexists key field # 返回field数量
hlen key # 删除field
hdel key field [field ...] # 返回指定key的所有field
hkeys key # 返回指定key的所有value
hvals key # 返回指定key的所有field和vlaue
hgetall key

三、List类型及操作

双向链表 key对应链表名字

# 添加元素有左右(头尾)之分
lpush/rpush key value1 value2 value3 ....# 在key对应list的特定位置之前或之后添加字符串元素
linsert key before|after pivot element# 可以使用下标进行设置lset
lset key [idx] newValue# 删除指定数量的相同value
lrem key count value
# count:指定移除元素的数量和方向:
# count > 0:从列表头部(左侧)开始搜索,移除与value相等的元素,最多移除count个。
# count < 0:从列表尾部(右侧)开始搜索,移除与value相等的元素,最多移除|count|个。
# count = 0:移除列表中所有与value相等的元素。
# value:要移除的元素值。# 保留范围内的数据(截取字串)
ltrim key start end # 删除头或者尾,并返回删除元素
lpop/rpop key # 从src尾部移除元素并添加到dest头部,返回被移除的元素值
rpoplpush src dest# 遍历
lrange key start end# 可以使用下标进行获取元素
lindex  key  [idx]# 返回key对应list的长度
llen key

四、Set类型及操作

集合,底层使用的是哈希表,也就表明set中的元素是没有顺序的。

# 添加元素
sadd key value1 value2 value3....# 删除元素
srem key value1 value2 value3....# 遍历
smembers key# 移除并返回集合中的一个/num个随机元素
spop key [num] # 在集合中随机选出num个数元素,不删除元素
srandmemberr key num # 返回所有给定key与第一个key的差集
sdiff key [key ...]# 返回所有给定key与第一个key的差集,并将结果存为另一个key
sdiffstore dest key [key ...]# 返回所有给定key的交集
sinter key [key ...]# 返回所有给定key的交集,并将结果存为另一个key
sinterstore dest key [key ...]# 返回所有给定key的并集
sunion key [key ...]# 返回所有给定key的并集,并将结果存为另一个key
sunionstore dest key [key ...]# 移除src中的member,并放入dest中
smove src dest member# 返回元素个数
scard key# 判断是否为成员
sismember key value

五、Sorted Set类型及操作

可以为每个key设置double类型的分数进行排序

# 添加元素
zadd key score1 value1  score2 value2 ....# 遍历元素(按score从小到大排序)
zrange key start end [withscores]# 遍历元素(按score从大到小排序)首先按score从大到小排序,再取出全部元素
zrevrange key start end [withscores]# 删除名称为key的zset中的元素member
zrem key member [member ...]# 如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment
zincrby key increment member# 返回member排名的下标(按score从小到大排序)
zrank key member # 返回member排名的下标(按score从大到小排序)
zrevrank key member # 返回集合中score在给定区间的元素
zrangebyscore key min max withscores# 返回集合中score在给定区间的数量
zount key min max# 返回集合中元素个数
zcard key# 返回给定元素对应的score
zscore key member# 删除集合中排名在给定区间的元素
zremrangebyrank key start stop# 删除集合中score在给定区间的元素
zremrangebyscore key min max

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/905630.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解析四款功能强大的GIS工具箱软件

随着GIS技术的不断发展,各类专业的GIS工具箱软件不断涌现,帮助专业人士在空间数据分析、地图可视化、三维建模等方面提供强有力的支持。本文将介绍四款GIS工具箱软件,这几款软件专注于GIS切片和GIS数据处理,适用于多个领域的地理信息数据处理,能够帮助用户高效处理和可视化…

什么是「Agentic 工作流程」?丨社区来稿

摘要分享者:Richard 林旅强(RTE 开发者社区联合主理人)什么是「Agentic 工作流程」?它是一种让 AI 智能代理(Agent)更主动、更灵活、更像人的方式来处理复杂任务的系统。刚才读到了一篇言简意赅的文章(链接在文末),我想就基于以下每一张文中的图示,来说说什么是 Agen…

2025中国生命科学与医疗行业调研报告160+份汇总解读|附PDF下载

原文链接:https://tecdat.cn/?p=41106 中国生命科学与医疗行业正经历深刻变革:政策监管趋严、技术创新加速、全球化竞争加剧,企业需在不确定性中寻找增长锚点。本报告通过数据驱动的分析框架,深度解析行业现状、挑战及未来机遇,为从业者提供战略参考。 本报告汇总解读基于…

可结合的元素对

转换条件:lowbit(a[i]+a[j])==a[i]+a[j] 转换为 a[i]+a[j]=2^k, 第一个for按顺序枚举a[i],然后第二个for枚举k的所有情况,两层循环中找a[j](即a[i]-2^k)的个数即可 代码展示: #include<bits/stdc++.h> #define int long long using namespace std;int a[100010]; un…

专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、标准普尔500指数|附数据代码

原文链接:https://tecdat.cn/?p=41020 原文出处:拓端数据部落公众号 本专题合集系统梳理了贝叶斯方法在金融数据分析与分类建模中的前沿应用。合集聚焦于PyMC3概率编程框架,深度探讨了共轭先验参数更新、贝叶斯逻辑回归、贝叶斯夏普比率等核心算法在实际场景中的落地实践。…

探秘Transformer系列之(18)--- FlashAttention

从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。探秘Transformer系列之(18)--- FlashAttention 目录0x00 概述0.1 问题0.2 其它解决方案0.3…

day:29 fiddler弱网测试

1、模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多2、Fiddler弱网的原理 Rules—>Cutomize Rules打开CustomRules.js 文档在文件中搜索关键字,m_SimulateModem让我们来分析一下这几行代码: 上传速…

【数据结构/排序】堆排序C++代码模板

// 下沉调整函数 void sift_down(vector<int>& arr, int i, int n) {while (i < n) {int largest = i; // 当前节点int left = 2 * i + 1; // 左子节点int right = 2 * i + 2;// 右子节点// 找到左右子节点中的较大者if (left < n && arr[left] &…

【数据结构】堆(大根堆、小根堆)的C++代码模板

大根堆/最大堆 以下是 大根堆(Heap)的C++代码模板,包含最大堆的基本操作(插入、删除堆顶、堆化等),注释详细说明关键步骤: class MaxHeap { private:vector<int> heap;// 获取父节点索引int parent(int i) { return (i - 1) / 2; }// 获取左子节点索引int left(in…

简易聊天室项目(本地部署)

二、IDEA开发 1.创建新的空项目file->project struture->+->new module点击next,选取依赖创建成功后,先将依赖下载(右上角会有一个小的m图标,点击就可以)2.创建文件 先创建三个文件ChatHandler,WebSocketConfig,index.html,位置如下3.粘贴代码,将下面代码粘贴…