Redis之字符串

Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计 客户端和服务端可以位于同一台计算机上,也可以位于不同的计算机上。服务端是整个架构的“大脑”,能够把数据存储到内存中,并且起到管理数据的作用。 阅读详情

字符串键值结构:

keyvalue
helloworld
counter1
bits10111101
json{
    "product": {
        "id": "2951",
        "name": "testing 01",
        "quantity": 4
    }
}

字符串的value的大小限制为512M

字符串命令

set、get、del

自增incr

假如没有定义 则默认是0

假如非数值类型 则报错

decr:自减

如果key不存在,默认是0,自减后变为-1

incrby:指定增量值

incrby key value     value表示增长的数目

如果key不存在,默认是0,自增后变为value

decrby:指定减量值

decrby key value  value表示减少的数目

如果key不存在,默认是0,自减后变为-value

实战:

1.记录网站每个用户个人主页的访问量???

incr userid:pageview(单线程:无竞争)

2.缓存视频的基本信息(数据源在MySQL中)???

伪代码:

public VideoInfo get(long id) {
	String redisKey = redisPrefix + id;
	VideoInfo videoInfo = redis.get(redisKey);
	if (videoInfo == null) {
		videoInfo = mysql.get(id);
		if (videoInfo != null) {
			//序列化
			redis.set(redisKey, serialize(videoInfo));
		}
	}
	return videoInfo;
}

3.分布式id生成器 ???

 

 

set 、setnx 、set xx

set key value  #不管key是否存在,都设置

setnx key value #key不存在,才设置

set key value xx   #key存在,才设置(相当于更新操作)

mget    mset

mget key1 key2 key3...

#批量获取key,原子操作

mset key1 value1 key2 value2 key3 value3

#批量设置key-value

 

getset、append、strlen

getset key newvalue

#set key newvalue并返回旧的value

append key value

#将value追加到旧的value

strlen key

#返回字符串的长度(注意中文)

incrbyfloat、getrange、setrange

incrbyfloat key 3.5

#增加key对应的值3.5

getrange key start end

#获取字符串指定下标所有的值

setrange key index value

#设置指定下标所有对应的值

 

redis优化编码之字符串 尽量减少字符串频繁修改操作 如append,setrange改为直接使用set修改字符串降低预分配带来的内存浪费和碎片。 阅读详情

相关推荐

无痛安装及初始配置 PHP 8.0.3 + Apache 2.4 + MySQL 8.0

PHP 8.0.3 + Apache 2.4 + MySQL 8.0MySQL 8.0.23 安装下载安装配置环境变量初始化MySQLPHP8.0.3 安装下载安装配置环境变量Apache 2.4 安装下载安装启动 MySQL 8.0.23 安装 下载 到官方网站下载:https://dev.mysql.com/downloads/mysql/ 目前的最新版本是MySQL 8.0.23 在Windows上有两种安装方式,一个是zip压缩文件解压然后配置,另一个是图像化界面安装。 这里选择第一种方法安装:

Kuang Da's Blog 6208

Redis的安装&连接---(超详细)

Redis是c语言开发的。 安装redis需要c语言的编译环境。如果没有gcc需要在线安装。 yum install gcc-c++ (一)redis的安装 1、使用SecureCRT中的SFTP将redis的源码包上传到linux系统。 2、解压缩redis压缩包 tar -zxf redis-3.0.0.tar.gz  3、编译。进入redis源码目录。make   4、安装。...

qq_42129399的博客 781

科研绘图神器Origin中文版安装后还是英文?手把手教你三步搞定界面汉化

本文详细介绍了Origin软件安装后界面仍显示英文的解决方案,包括基础语言切换、注册表修改和序列号破解三种方法。通过逐步指导,帮助用户快速实现界面汉化,提升科研绘图效率。特别针对教育版用户提供了有效的语言锁定解除方案。

weixin_42524708的博客 1131

解析Redis Key Prefix配置之谜:双冒号“::”的由来与作用

解析Redis Key Prefix配置之谜:双冒号“::”的由来与作用

小李同学的博客 3544

RK-XCKU5P RoCEv2 传感器桥工程分析报告

烧入后这块 FPGA 就是一个固定身份(CA:FE:C0:FF:EE:00 / 192.168.0.2 / 无 FEC 100G)的RoCEv2 UC 端点,每秒在 UDP 12267 广播自报家门;对端 CX5 只要关 FEC、配 192.168.0.101 +MTU 4200,就能 ping 通它、用 UDP 8192 读写它的全部寄存器、再按"ECB 旁路交换 QPN/rkey"的方式建立 UC RDMA 通道收发数据。

eloudy的专栏 245

若依ruoyi框架实现单点登录或者接入统一认证

log.info("单点登录用户[{}]不存在, 需要创建.", loginName);log.info("单点登录用户[{}]已存在.", loginName);jsonObjectData.put("nickName","单点1");if (code.equals("0")) {//验证成功需要自动登录。jsonObject.put("msg","验证成功");ajax.put("msg", "登录成功");

GitHub质检员 2万+

RedisTemplate 获取redis中以某些字符串为前缀的KEY列表

publicstaticfinalStringprefix="helllojava_*";//这个*一定要加,否则无法模糊查询 Set<String>keys=stringRedisTemplate.keys(prefix); for(Stringkey:keys){ System.out.println(key); } ...

ll_sion的博客 1万+

智能车轮腿组‘定点排雷’科目全解析:从雷区识别到姿态控制

本文深入解析了智能车竞赛轮腿穿越组‘定点排雷’科目的核心技术。从构建鲁棒的视觉识别系统,到融合编码器与IMU进行厘米级定位,再到实现框内高精度旋转的姿态控制,提供了一套完整的从感知到执行的闭环技术方案,助力参赛队伍攻克这一高难度科目。

weixin_29161719的博客 640

获取redis中以某些字符串为前缀的KEY列表

public static final String prefix = "helllojava_*"; //这个*一定要加,否则无法模糊查询 Set<String> keys = stringRedisTemplate.keys(prefix); for(String key : keys){ System.out.println(key); } 链接地址: https://blog.youkuaiyun.com/ll_sion/article/details/92790463 ...

z1yz1yz1y的博客 2719

保姆级教程:SAP ABAPer如何为VF01销售发票和MIRO发票校验配置凭证替代(含AC_DOCUMENT BADI完整代码示例)

本文详细解析了SAP ABAP中通过AC_DOCUMENT BADI实现VF01销售发票和MIRO发票校验的凭证替代技术。从技术选型到BADI实施步骤,再到核心逻辑代码示例,为ABAP开发者提供了一套完整的解决方案,帮助应对财务部门复杂的业务需求。

weixin_30421809的博客 352

保姆级教程:用ROS2 Humble和Nav2从零搭建一个能自主导航的机器人小车(含SLAM建图与避障)

本文提供了一份详细的保姆级教程,指导如何使用ROS2 Humble和Nav2从零搭建一个具备自主导航功能的机器人小车,包括SLAM建图与避障。教程涵盖了硬件组装、ROS2环境配置、URDF模型创建、SLAM建图实战、Nav2导航栈配置以及系统集成调试等关键步骤,适合机器人开发初学者和进阶开发者。

weixin_30329623的博客 490

redis 缓冲前缀

目标如图所示 用的是redis客户端查看工具 RedisDesktopManager代码结构及其目录 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework...

fwk19840301的博客 3830

RK3588适配Ubuntu系统

RKsdk上支持buildroot以及Debian系统,但是Ubuntu需要自己移植,有很多公司都移植好了可以直接用,这里就总结记录一下我制作Ubuntu的过程。

m0_60805802的博客 5361

【Redis】Redis String 字符串

本文聚焦系列命令,常见命令涵盖 SET、GET 等,助数据存取值;计数命令如 INCR 系列,实现数值灵活运算;另有 APPEND 等处理字符串。总结各命令特点后剖析内部编码,更展示其在缓存、计数、手机验证码场景的关键效用。

m0_73648729的博客 1199

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

redis字符串类型

而在Redis中,当SDS API需要对SDS进行修改时,API会先检查SDS的空间是否满足修改所需的要求,如果不满足的话,API会自动将SDS的空间扩展至执行修改所需的大小,然后才执行实际的修改操作,所以使用SDS既不需要手动修改SDS的空间大小,也不会出现前面所说的缓冲区溢出问题。C字符串并不记录自身的长度信息,所以为了获取一个C字符串的长度,程序必须遍历整个字符串,对遇到的每个字符进行计数,知道遇到代表字符串结尾的空字符为止,这个操作的复杂度为O(N)。比如jpg图片或者序列化的对象。

qqqwx_111115的博客 1727

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Redis】一、Redis的简单动态字符串SDS

Redis没有直接使用C语言传统的字符串表示(以空字符 \0 结尾的字符数组),而是构建了一种名为简单动态字符串SDS的抽象类型,并将SDS用作Redis的默认字符串表示。 SDS的数据结构 struct sdshdr{ //记录buf数组中已经使用字节的数量 //等于SDS所保存字符串长度 int len; //记录buf数组中未使用字节数量 int free; //字节数组 用...

石臻说AI(szzdzhp001) 【原名 石臻臻的杂货铺】 4502

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

lua redis 返回字符串

我整理的一些关于【字符串】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1使用 Lua 和 Redis 获取字符串 在这篇文章中,我将向你展示如何使用 Lua 脚本从 Redis 中获取返回的字符串。要实现这个目标,我们将按照以下流程进行操作: 流程步骤 以下是实...

weixin_35870524的博客 205

折腾Redis之字符串

      字符串是Redis五种基本数据类型中的基础。同时也是我们在学习编程中接触最多的一种数据类型。本文将从使用、源码、编码三个部分讲解此数据类型在Redis中的使用。 字符串       string是Redis中最简单的数据结构。Redis中所有的数据结构都是以唯一的key字符串作为名称,根据此key获取value,差异仅在于value的数据结构不同。string使用非常广泛,最常

带翅膀的猫的博客 4319

redis字符串

背景 redis的字符串,是自定义字符串数据结构,没有使用c语言的字符串数据结构,因为redis的数据经常变动,所以没有使用c的默认数据结构。 redis只有在不需要修改的地方,比如,打印日志的时候,日志里的字符串是c语言字符串。 写读数据的时候,全部都是redis字符串。 redis字符串叫动态字符串。 应用场景 1.日志 c静态字符串 2.key/value redis动态字符串 3.其他 除...

weixin_33725807的博客 127

Redis 的字符串底层实现

SDS的结构设计:掌握五种SDS结构体的区别、关键字段的作用,以及短字符串优化的实现方式。SDS与C原生字符串的对比:清晰阐述C原生字符串的缺陷,以及SDS对应的解决方案(如长度计算、缓冲区安全、二进制存储等)。SDS的核心机制:理解空间预分配、惰性释放的实现逻辑及其带来的性能优势。总之,Redis的SDS设计充分体现了“高效、安全、灵活”的设计理念,通过针对性地解决C原生字符串的痛点,为Redis字符串的高性能运行提供了底层支撑。

埃泽漫笔 445

【Redis】Redis字符串指令指南

这是我父亲 日记里的文字这是他的生命 留下留下来的散文诗几十年后 我看着泪流不止可我的父亲已经 老得像一个影子🎵 许飞《父亲写的散文诗》Redis 是一个开源的内存数据库,支持多种数据结构,其中字符串是最基本、最常用的数据类型之一。Redis 的字符串不仅可以存储文本,还可以存储二进制数据,如图片或序列化的对象。本文将详细介绍 Redis 字符串的常用指令及其使用方法。

哈哈哈哈哈哈哈 1096

【Redis】string字符串

Redis 字符串类型不仅是键的载体,更是所有复杂数据结构元素的基石。其。

2301_80224556的博客 859

Redis 中 String 字符串类型详解

所有键都是字符串:在 Redis 里,所有的键(key)都是字符串类型。其他数据结构的基础:列表、集合等其他数据结构的元素也都是字符串类型。值的多样性:字符串类型的值可以是普通的文本、JSON 或 XML 格式的字符串、数字(整数或浮点数),甚至是二进制数据(如图片、音频、视频等)。最大长度限制:一个字符串的最大长度不能超过 512 MB。字符集编码:Redis 内部存储字符串时,完全按照二进制流的形式保存,不处理字符集编码问题。客户端传入的命令是什么字符集编码,就存储什么字符集编码。

Y_1215的博客 1579

redis中只能保存字符串_如何在Redis中管理字符串

redis中只能保存字符串 介绍 (Introduction) Redis is an open-source, in-memory key-value data store. In Redis, strings are the most basic type of value you can create and manage. This tutorial provides an overvie...

806

Redis字符串最多能存多少?

Redis中的字符串类型(string)值最大容量通常由配置参数决定,默认情况下,单个字符串的最大长度为512MB。如果需要存储更大的数据,可以考虑分片存储或使用其他数据结构如哈希、列表等来实现。此外,在处理大容量字符串时需注意内存消耗和性能优化。

蓝鲸鱼计算机软件开发工作室 983

Redis字符串编码

Redis字符串的多编码设计,充分体现了“因地制宜”的优化思想——针对整数、短字符串、长字符串的不同特性,设计了差异化的存储方案,在内存利用率和操作性能之间实现了精准平衡。例如在存储用户ID、商品库存等整数字段时,可直接以整数形式存储以触发int编码;在存储短key(如)时,利用embstr编码提升访问性能;在存储长文本或二进制数据时,接受raw编码的开销以换取修改灵活性。通过对编码机制的合理运用,能让Redis发挥出更优的性能。

埃泽漫笔 751
上一篇: Redis之通用命令
下一篇: 缓存穿透、雪崩、击穿
给自己加加油
博客等级 码龄8年 302粉丝 110原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值