数据类型-数值增减操作| 学习笔记

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 快速学习数据类型-数值增减操作

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-数值增减操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13373


数据类型-数值增减操作

 

String 类型数据的扩展操作

业务场景

大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复。

Orade 数据库具有 sequence 设定,可以解决该问题,但是 MySQL 数据库并不具有类似的机制,那么如何解决?

首先讨论一个企业问题,一张表上保存的数据不能让他无限制的扩张,要有一定的限度,因为会影响操作效率,

这个时候要做的就是去进行切割分离,也就是通俗的分库分表,先不考虑分库的问题,现在考虑分表,表有了,表里面的字节是一个一个递增的,如果要分到别的表里面,如果每个表控制自己的字增是会出问题的,也就是重复性的问题,一旦重复了,会很麻烦,主键重复了那还叫主键吗?

于是我们就要解决主键重复的问题,在 Orade 数据库中能做到,有序列的机制,可以解决,而 mysql 里面就无法完成,

这时 redis 就可以帮我们去做,我们把一张表分成若干张表,我们此时需要保证的就是所有的id都不重复,id是由数据库控制的,如果此时我们用自己来控制,那么就要用到 redis。

image.png

解决方案:

设置数值数据增加指定范围的值

Inor key

Incrby key increament

Incrbyfloat key increament

设置数值减少指定范围的值

Decr key

Decrby key increament

可以对字符串进行操作,如果是纯数字可以使用加一减一,首先设定一个数值,set num 1,然后 incr num,回车,然后 get num,回车,incr num,回车,incr num,然后会发现一直在加一,如果使用decr num,那么就会减一,对这个值进行增减,一次增减一个单位。

这就是 incr 跟 decr,可以对一个字符串进行增减,如果是纯数字就可以每次增减一;那么如果是 incrby,意思就是说,增加一个值通过我们给定的一个值,通俗的讲就是,加我们指定的值,输入就是 incrby num 10,就会加上10,相应的减法就是 decrby num 10。

那么 incrbyfloat 的意思是加上带有小数位的数字,如果说没有输入float那么会显示 error,也就是说无法加上,incrby 加的整数,这就是操作所使用的一些命令。

这里要注意的是,后面跟的数字可以是正数,也可以是负数,所有使用 incrby 的时候跟一个负数会呈现出减少的效果。

string 作为数值操作
string 在 redis 内部存储默认就是一个字符串,当遇到增减类操作 incr、decr 时会转成数值型进行计算。

redis 所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响。
注意:

按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis数值上限范围,将报错。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
10月前
|
存储 IDE 编译器
整型在内存中的存储及运算规则
整型在内存中的存储及运算规则
|
2月前
|
存储 人工智能 程序员
溢出、截断、类型提升:从易错代码入手分析整型数据存储与类型转换
这篇文章介绍了关于数据在内存中的存储以及可能出现的溢出问题,包括整型数据的存储方式、取值范围以及溢出的现象和原因。文章通过例子和罗盘图解释了整型数据溢出时的计算过程,并指出在进行运算时要注意数据类型的转换和可能的溢出情况。此外,文章还给出了几个练习题,帮助读者理解和应用这些知识。
48 0
|
2月前
|
存储
整形数据和浮点型数据在内存中的存储差别
整形数据和浮点型数据在内存中的存储差别
39 0
|
11月前
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
【浮点数在内存中的存储规则】
浮点数的存储规则: 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。
|
C语言 C++
编写一个程序,用同一个函数名对n个数据进行从大到小排序,数据类型可以是整型、单精度型。要求用重载函数实现。
编写一个程序,用同一个函数名对n个数据进行从大到小排序,数据类型可以是整型、单精度型。要求用重载函数实现。
|
存储 NoSQL Redis
数据类型-set 数据交并差操作 | 学习笔记
快速学习数据类型-set 数据交并差操作
74 0
数据类型-set 数据交并差操作 | 学习笔记
|
存储 数据库
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
|
关系型数据库 MySQL 数据库
MySQL基础-数值函数(上)
常见的数值函数如下:
105 0
|
SQL 分布式计算 大数据
无类型转换_列操作 | 学习笔记
快速学习无类型转换_列操作
85 0
无类型转换_列操作 | 学习笔记

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    27
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    27
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    28
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    24
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    31
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    22
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    20
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    21
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19