redis(4)String字符串

news2024/11/18 11:17:31

前言

Redis中有5大数据类型,分别是字符串String、列表List、集合Set、哈希Hash、有序集合Zset,本篇介绍Redis的字符串String

Redis字符串

  1. String是Redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value
  2. String类型是二进制安全的。意味着Redis的string可以包含任何数据。比如jpg图片或者序列化对象。
  3. Stirng类型是Redis最基本的数据类型,一个Redis中字符串value最多可以是512M

常用命令

  • set <key> <value> 添加键值对
    *EX:key的超时秒数
    *PX:key的超时毫秒数,与EX互斥
    *NX:当数据库中key不存在时,可以将key-value添加数据库
    *XX:当数据库中key存在时,可以将key-value覆盖原来的数据添加到啊数据库,与NX参数互斥

  • get 查询对应键值

  • append key value 将给定的value追加到原值的末尾

  • strlen key 获得值的长度

  • setnx key value 只有在key不存在时,设置key的值

  • incr key

    • 将key中存储的数字值加1
    • 只能对数字值操作,如果为空,现在新增值为1
  • decr key;

    • 将key中存储的数字值减1

    注意:incr是对存储在指定key的数值执行原子的加1操作

    所谓原子操作是指不会被线程调度机制打断的操作

    这种线程一旦开始,就一直运行到结束,中间不会有任何切换到另一个线程的操作

    (1) 在单线程中,能够在单挑指令中完成的操作都可以认为是"原子操作",因为中断只能发生于指令之间。(2) 在多线程中,不能被其他进程(线程)打断的操作就叫原子操作

    Redis单命令的原子性主要得益于Redis的单线程

  • mset <key1><value1><key2><value2> 同时设置1个或多个key-value对

  • mget <key1><key2><key3> 同时获取1个或多个value

  • msetnx <key1> <value1> <key2> <value2> 同时设置1个或多个key-value对,当且仅当所有给定key都不存在

  • getrange <key><起始位置><结束位置> 获得值的范围,类似java中的substring,前包,后包

  • setrange <key> <起始位置> <value> 用<value> 覆写<key>所存储的字符串值,从<起始位置>开始(索引从0开始)

  • setex <key><过期时间><value> 设置键值的同时,设置过期时间,单位为秒

  • getset <key><value> 以旧换新,设置新值同时获得旧值

String数据结构

String 的数据结构为简单动态字符串 (Simple Dynamic String, 缩写 SDS),是可以修改的字符串,内部结构实现上类似于 JavaArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.
如图中所示,内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度 len。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python使用百度通用API进行翻译

想汉化StarUML这个软件&#xff0c;感觉工作量太大&#xff0c;想要用Python自动翻译。 结果网上找的一个个用不了&#xff0c;或者用一会儿就断。 于是自己手写了一个简单的&#xff0c;只有两个类&#xff1a;APIConfig和Translater 使用 demo my_api_config APIConfig(…

指针的进阶——(1)

本次讲解重点&#xff1a; 1、字符指针 2、数组指针 3、指针数组 4、数组传参和指针传参 5、函数指针 关于指针这个知识点的主题&#xff0c;我们在前面已经初级阶段已经对指针有了大致的理解和应用了。我们知道了指针的概念&#xff1a; 1、指针就是地址&#xff0c;但口…

PHP基础(3)

PHP基础表单提交文件处理PHP连接数据库异常抛出表单提交 PHP通过全局变量 $_GET和 $_POST来收集表单数据。 接下来改用post方式进行提交&#xff0c;再次查看是否隐藏了提交的内容&#xff1a; 发现提交的信息已经不在链接之中进行显示了。 GET与POST区别在于一个会在连接…

番外9:使用ADS对射频功率放大器进行非线性测试1(以IMD3测试为例)

番外9&#xff1a;使用ADS对射频功率放大器进行非线性测试1&#xff08;以IMD3测试为例&#xff09; 一般可以有多种方式对射频功率放大器的非线性性能进行测试&#xff0c;包括IMD3、ACPR、ACLR等等&#xff0c;其中IMD3的实际测试较为简单方便不需要太多的仪器。那么在ADS中…

VUE的生命周期- VUE2.x

1.生命周期有哪些VUE2.x 自带八个&#xff1a;beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeDestroy,destroyed2.一旦进入组件会执行哪些生命周期beforeCreate,created,beforeMount,mountedbeforeCreate,没有DOM($el),没有data&#xff0c;不能拿到方…

飞桨-鹏城云脑发行版亮相第四届启智开发者大会,软硬一体化助力科研

2月24日&#xff0c;主题为“算网筑基、开源启智、AI赋能”的第四届OpenI/O启智开发者大会在深圳开幕&#xff0c;大会由科技部指导、鹏城实验室与新⼀代人工智能产业技术创新战略联盟&#xff08;AITISA&#xff09;主办&#xff0c;科技部高新司副司长梅建平&#xff0c;中国…

Simple RNN、LSTM、GRU序列模型原理

一。循环神经网络RNN 用于处理序列数据的神经网络就叫循环神经网络。序列数据说直白点就是随时间变化的数据&#xff0c;循环神经网络它能够根据这种数据推出下文结果。RNN是通过嵌含前一时刻的状态信息实行训练的。 RNN神经网络有3个变种&#xff0c;分别为Simple RNN、LSTM、…

ESP-C3入门13. SoftAP模式

ESP-C3入门13. SoftAP模式一、 ESP32-C3 WIFI的工作模式二、SoftAP配置1. wifi_config_t 结构体2. wifi_event_handler 事件(1) esp_event_handler_instance_register 注册事件(2) system_event_sta_connected_t 结构体3. 关闭SoftAP三、示例1. main.c2. wifi_ap.h3. wifi_ap.…

自动化构建部署devops(CICD)--敏捷开发

一。gitlab结合jenkins自动化项目构建部署 代替早期的手动部署服务&#xff0c;写文档&#xff0c;java-jar启动啦。麻烦还容易出错。 二。DevOps 三。部署流水线 四&#xff0c;页面工具&#xff08;类似于ones&#xff09; 1&#xff0c;开发组长在页面添加项目成员&#…

integrationobjects点com all OPC Crack

Integration Objects 是世界领先的系统集成商和解决方案提供商&#xff0c;专门从事运营和制造智能、高级分析、异常事件的预防性检测、在线诊断和根本原因分析、OPC 连接、工厂自动化、知识管理解决方案、网络安全和企业电力和公用事业以及全球流程和制造行业的集成。 OPC UA …

storybook使用info插件报错

报错内容: RangeErrorMaximum call stack size exceededCall StackprettyPrintvendors-node_modules_pmmmwh_react-refresh-webpack-plugin_lib_runtime_RefreshUtils_js-node_mod-4ff2dd.iframe.bundle.js:160:27undefinedvendors-node_modules_pmmmwh_react-refresh-webpack-…

结构方程模型全流程

案例与数据 某研究者想要研究关于教师懈怠感的课题&#xff0c;教师懈怠感是指教师在教育情境的要求下&#xff0c;由于无法有效应对工作压力与挫折而产生的情绪低落、态度消极状态&#xff0c;这种状态甚至会引发心理、生理的困扰&#xff0c;终至对教育工作产生厌倦&#xf…

英语二-议论文写作词汇、话题、模板、范文参考

1. 词汇多样性 1. 表示因果关系 2. 表示转斩关系 3. 表示顺序关系 4. 表示递进关系 5. 表示对比关系 6. 表示总结关系 7. 连接论据的词 2. 高频考试话题 1. 有益身心的短语 2. 提高能力的短语 3. 写作模板 支持原创作文&#xff0c;如果不会&#xff0c;请牢记模板。 如果嫌…

Android源码分析 —— Activity栈管理(基于Android8)

0. 写在前面 本文基于 Android8.0源码&#xff0c;和Android9.0大同小异&#xff0c;但和Android10.0差别非常大&#xff01;新版改用ATM来管理Activity的启动&#xff0c;Activity的生命周期也通过XXXItem来管理。由于我分析的Activity启动流程就是基于Android8/9的&#xff…

FFmpeg/OpenCV 实现全屏斜体水印

实现思路 &#x1f914;​ 基于ffmpeg&#xff0c;画布的方式&#xff0c;创建画布 -> 水印 -> 旋转 -> 抠图 -> 叠加到图像上基于ffmpeg&#xff0c;旋转图片的方式&#xff0c;填充 -> 水印 -> 顺时针旋转 -> 逆时针旋转 -> 截图基于opencv&#xff…

Pag渲染过程 -- 背景知识

什么是渲染 渲染是图形程序的核心&#xff0c;无论是我们在电子设备上看到的任何图形或者文字都是利用计算机图形渲染技术给我们呈现出来的结果。在计算机里一开始是直接利用CPU往显示器的FrameBuffer内写入数据即可把图形展示到显示器上&#xff0c;但是随着用户的需求和技术…

别担心,ChatGPT还抢不动你的饭碗

前言&#xff1a; “你是谁&#xff1f;” “我是一个由OpenAI训练的大型语言模型。我旨在帮助人们解答问题和提供信息。由于我是一个计算机程序&#xff0c;所以不会感知或者思考&#xff0c;只能通过已有的数据来回答问题。如果您有任何问题&#xff0c;请随时告诉我。” ---…

rabbitmq部署安装(mac)

安装&#xff1a; // 默认已经下载了homebrew&#xff0c;更新brew资源 brew update // 执行安装 brew install rabbitmq 配置&#xff1a; // 切换到MQ目录,注意你的安装版本可能不是3.9.5&#xff08;我的版本&#xff0c;当前最新版 cd /usr/local/Cellar/rabbitmq/3.…

如果不是互联网人,谁会找到这些神器?

一、上线啦 你肯定该问了&#xff0c;这个是什么鬼东西。它本来是一个创建自己网站的网站。 现在使用它可以创建自己的小程序&#xff0c;又不是有点小厉害了。 而且功能强大&#xff0c;还支持微信支付&#xff0c;分销&#xff0c;优惠券&#xff0c;营销等多种功能。 还有多…

DS期末复习卷(九)

一、选择题(30分) 1&#xff0e;下列程序段的时间复杂度为&#xff08;A &#xff09;。 for(i0&#xff1b; i<m&#xff1b; i) for(j0&#xff1b; j<t&#xff1b; j) c[i][j]0&#xff1b; for(i0&#xff1b; i<m&#xff1b; i) for(j0&#xff1b; j<t&am…