Redis6入门到实战------ 三、常用五大数据类型(字符串 String)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。

1、 Redis键(key)

1.1 查看所有key

keys *查看当前库所有key

在这里插入图片描述


1.2 判断某个key是否存在

exists key判断某个key是否存在

在这里插入图片描述


1.3 查看key是什么类型

type key 查看你的key是什么类型

在这里插入图片描述


1.4 删除指定key

del key       删除指定的key数据
unlink key   根据value选择非阻塞删除
仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。

在这里插入图片描述


1.5 设置key过期时间

expire key 10   10秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

在这里插入图片描述


1.6 切换数据库

select命令切换数据库

选择0 。默认操作的库

在这里插入图片描述


1.7 查看当前数据库key数量

dbsize查看当前数据库的key的数量

在这里插入图片描述


1.8 清空数据库

flushdb清空当前库
flushall通杀全部库

在这里插入图片描述

2、Redis字符串(String)

2.1 简介

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

2.2 常用命令

set   <key><value>添加键值对

在这里插入图片描述

在这里插入图片描述
*NX:当数据库中key不存在时,可以将key-value添加数据库
*XX:当数据库中key存在时,可以将key-value添加数据库,与NX参数互斥
*EX:key的超时秒数
*PX:key的超时毫秒数,与EX互斥


get   <key>查询对应键值

在这里插入图片描述


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

在这里插入图片描述


strlen  <key>获得值的长度

在这里插入图片描述


setnx  <key><value>只有在 key 不存在时    设置 key 的值

如果设置已经存在的key、会设置失败

在这里插入图片描述


incr  <key>
将 key 中储存的数字值增1
只能对数字值操作,如果为空,新增值为1

decr  <key>
将 key 中储存的数字值减1
只能对数字值操作,如果为空,新增值为-1

在这里插入图片描述

所谓原子操作是指不会被线程调度机制打断的操作;
这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。
(1)在单线程中, 能够在单条指令中完成的操作都可以认为是"原子操作",因为中断只能发生于指令之间。
(2)在多线程中,不能被其它进程(线程)打断的操作就叫原子操作。
Redis单命令的原子性主要得益于Redis的单线程。


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

mget  <key1><key2><key3> .....
同时获取一个或多个 value

在这里插入图片描述

msetnx <key1><value1><key2><value2>  ..... 
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
原子性,有一个失败则都失败

在这里插入图片描述


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

在这里插入图片描述


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

在这里插入图片描述


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

在这里插入图片描述


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

在这里插入图片描述

2.3 数据结构

String的数据结构为简单动态字符串(Simple Dynamic String,缩写SDS)。是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配.

在这里插入图片描述
如图中所示,内部为当前字符串实际分配的空间capacity一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4天前
|
索引 Python
String(字符串)
String(字符串)。
11 3
|
7天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
22 1
|
1月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
94 1
springboot的缓存和redis缓存,入门级别教程
|
26天前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
36 4
|
27天前
|
存储 消息中间件 NoSQL
Redis 数据类型
10月更文挑战第15天
36 1
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
58 8
|
1月前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
33 5
|
1月前
|
C++ 容器
C++入门7——string类的使用-2
C++入门7——string类的使用-2
20 0
|
1月前
|
C语言 C++ 容器
C++入门7——string类的使用-1
C++入门7——string类的使用-1
21 0
|
存储 缓存 NoSQL
Redis实战之入门进阶到精通
Redis 是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis 提供了 5 种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:Redis 的数据结构致力于帮助用户解决问题,而不会像其他数据库那样,要求用户扭曲问题来适应数据库。除此之外,通过复制、持久化(persistence)和客户端分片(client-side sharding)等特性,用户可以很方便地将 Redis 扩展成一个能够包含数百 GB 数据、每秒处理上百万次请求的系统。
Redis实战之入门进阶到精通