iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis String怎么使用
  • 707
分享到

Redis String怎么使用

2024-04-02 19:04:59 707人浏览 泡泡鱼
摘要

这篇“Redis String怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Red

这篇“Redis String怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis String怎么使用”文章吧。

Redis String怎么使用

一、基本使用

set key value [EX seconds] [PX milliseconds] [NX|XX]

1、set是语法,key是指定名称, value是需要存储的值

2、EX 指定过期的秒时间,PX指定过期的毫秒时间

3、NX:只有key不存在的时候,才设置成功

4、XX:只有key存在的时候,才设置成功

总结:5.0支持set命令指定过期时间和不存在的时候才设置成功,也就是通过一条命令就可以实现分布式加锁的功能,以前的版本设置key和设置过期时间需要分成两个命令,原子性保证难度更大。

二、使用场景

1、热点数据缓存,分布式session

2、Setnx 分布式锁

3、incr 计数器

4、Incr 全局id

5、Incr 限流

6、bit 操作,位图功能,在线用户统计 0/1标记

三、支持存储的数据类型

整型,字符型,float(单浮点型)

四、不同的编码类型

Redis String怎么使用Redis String怎么使用

五、String存储原理

在Redis中,数据存储在一个RedisObject类中

typedef struct redisObject {    
//这个类型可以是string,也可以是hash,zset等等
unsigned type:4;    
unsigned encoding:4;    
//记录lru,lfu淘汰算法依赖的访问时间和访问频率    
unsigned lru:LRU_BITS; 

//引用计数器    
int refcount;    
//指向真实数据结构对象    
void *ptr;
} robj;

对于String,Redis自定义了一种简单动态字符串的数据结构来存储字符串数。

源码实现:多种数据结构,分别表示可以存储不同长度的字符串。

Redis String怎么使用

Redis String怎么使用

通过源码分析,扩容策略是字符串在长度小于 SDS_MAX_PREALLOC 之前,扩容空间采用加倍策略,也就是保留 100% 的冗余空间。当长度超过 SDS_MAX_PREALLOC 之后,为了避免加倍后的冗余空间过大而导致浪费,每次扩容只会多分配 SDS_MAX_PREALLOC大小的冗余空间。

十一、关于惰性空间释放

惰性空间释放用于优化 SDS 的字符串缩短操作:当 SDS 的 api 需要缩短 SDS 保存的字符串时, 程序并不立即使用内存重分配来回收缩短后多出来的字节, 而是使用 free 属性将这些字节的数量记录起来,并等待将来使用。

//仅仅设置长度,没有真正清除数据
void sdsclear(sds s) {    
//单纯设置长度为0    
sdssetlen(s, 0);    
//第一个字符设置为结束符    
s[0] = '\0';
}

真正的清除空间

sds sdsRemoveFreeSpace(sds s) 
{
struct sdshdr *sh;    
sh = (void*) (s-(sizeof(struct sdshdr)));    
// 进行内存重分配,让 buf 的长度仅仅足够保存字符串内容 
sh = zrealloc(sh, sizeof(struct sdshdr)+sh->len+1);    
// 空余空间为 0    
sh->free = 0;    
return sh->buf;
}

以上就是关于“Redis String怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Redis String怎么使用

本文链接: https://www.lsjlt.com/news/72131.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis String怎么使用
    这篇“Redis String怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Red...
    99+
    2024-04-02
  • Redis怎么使用
    这篇文章给大家分享的是有关Redis怎么使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Redis简介 什么是Redis?全称:REmote DIctionary Serv...
    99+
    2024-04-02
  • Redis数据类型string和Hash怎么用
    这篇文章给大家分享的是有关Redis数据类型string和Hash怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。String类型命令操作String类型是在Redis中最常用的数据类型,它也是很多程序员在日...
    99+
    2023-06-29
  • django redis怎么使用
    这篇“django redis怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“django red...
    99+
    2023-07-06
  • Java中String怎么使用
    今天小编给大家分享一下Java中String怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.String概述Str...
    99+
    2023-06-29
  • 怎么配置使用redis
    本篇内容主要讲解“怎么配置使用redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置使用redis”吧!Spring-data-redis为spring-data模块中对redis的支...
    99+
    2023-06-04
  • Java中怎么使用Redis
    这篇文章主要讲解了“Java中怎么使用Redis”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中怎么使用Redis”吧!开启远程连接Redis默认是不支持远程连接的,这里需要手动开启...
    99+
    2023-06-21
  • springboot中redis怎么使用
    在Spring Boot中使用Redis,可以使用以下步骤:1. 添加依赖:在`pom.xml`文件中添加Redis的依赖:```x...
    99+
    2023-09-04
    springboot redis
  • Redis之Lettuce怎么使用
    本篇内容主要讲解“Redis之Lettuce怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis之Lettuce怎么使用”吧!一、摘要Lettuce 是 Redis 的一款高级 Ja...
    99+
    2023-07-04
  • ThinkPHP5中怎么使用redis
    本文小编为大家详细介绍“ThinkPHP5中怎么使用redis”,内容详细,步骤清晰,细节处理妥当,希望这篇“ThinkPHP5中怎么使用redis”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前提:因为本文主要...
    99+
    2023-07-05
  • string在java中怎么使用
    在Java中,字符串(String)是一个类,用于表示文本数据。你可以使用字符串类型来存储和操作文本。以下是一些在Java中使用字符...
    99+
    2023-09-25
    string java
  • string compareto方法怎么使用
    String类的compareTo方法用于比较两个字符串的大小关系。它的使用方法如下: 语法: int compareTo(Stri...
    99+
    2023-10-25
    string
  • C++中的string怎么使用
    在C++中,可以使用string类来处理字符串。首先,需要包含头文件。以下是一些常用的string操作:1. 声明和初始化strin...
    99+
    2023-08-17
    C++ string
  • string怎么在java中使用
    这篇文章给大家介绍string怎么在java中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。1.创...
    99+
    2023-06-14
  • C++怎么使用string容器
    本篇内容主要讲解“C++怎么使用string容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++怎么使用string容器”吧!string基本概念本质:string是c++风格的字符串,而s...
    99+
    2023-07-02
  • vb string函数怎么使用
    VB中的字符串函数可以通过字符串对象或者字符串变量进行调用。以下是常用的字符串函数及其使用方法:1. Len:返回字符串的长度。示例...
    99+
    2023-10-11
    vb
  • 怎么使用PHP操作Redis
    本篇内容主要讲解“怎么使用PHP操作Redis”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用PHP操作Redis”吧!redis 的基本操作方法1 redis 的连接 ://实例化red...
    99+
    2023-06-20
  • php redis的scan怎么使用
    本篇内容介绍了“php redis的scan怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在删除缓存的时候,我们在一些场景下需要批量...
    99+
    2023-06-21
  • 怎么使用expect部署redis
    要使用expect部署Redis,你需要编写一个expect脚本来自动化这个过程。下面是一个简单的expect脚本示例:```#!/...
    99+
    2023-08-31
    expect redis
  • 怎么使用springBoot集成redis
    这篇文章将为大家详细讲解有关怎么使用springBoot集成redis,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。REmote DIctionary Server(Re...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作