Redis字符串(String)

2022-08-04 10:05:21

内容来源于B站【尚硅谷】Redis 6 入门到精通 超详细 教程,在此仅作为个人的笔记、手册使用

1.简介

1.String是Redis中最基本的类型,一个key对应一个value,是单键单值,是二进制安全的,可以包含任何数据,比如jpg图片、序列化对象(只要能转换成二进制符号那就都行
2.以下,我们谈论的操作,都是以String为value类型情况下进行的,这个String是value类型而不是key类型

2.常见命令

在这里插入图片描述
设置相同的key时,新设置的key-value会覆盖之前同名key的key-value

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
5.

在这里插入图片描述
与1有区别,防止覆盖

在这里插入图片描述
7.

在这里插入图片描述
也是只能对数字操作

在这里插入图片描述
与incr/decr不同,这俩可以使得增加改变的值不只是1,步长即为你想要增/减的值

在这里插入图片描述
对1、2、5操作进行了一点修改,使得能同时有多个对象进行操作。
当然,这个也是原子操作,比如有一个key-value设置不成功,那么对于其他的全都失败

在这里插入图片描述
起始位置和结束位置是对于value而言的,[起始位置,结束位置],例如:
在这里插入图片描述
11.
在这里插入图片描述
记住,会从起始位置开始覆盖!例如:
在这里插入图片描述
12.
在这里插入图片描述
13.
在这里插入图片描述

3.数据结构

在这里插入图片描述
在这里插入图片描述

4.特别提醒

1.Redis的incr操作是原子操作,一旦执行,未完成就不会被打断。
2.而java的i++并非原子操作,分为取值,++,赋值两部分,比如有一个变量i=0,两个线程分别执行i++100次,最大结果是i=200,即两个线程直接没有互相打断。
而最坏情况是,一开始a线程取值i=0,再到b线程取值i=0,然后a线程进行++99次,再赋值回去,使得i=99,然后b线程抢占cpu,执行1次++,再赋值回去,覆盖成了i=1,然后a线程取值走i=1,最后b线程执行99次++赋值回去使得i=100,而a线程执行1次++(此时a线程取值是i=1),再赋值回去,覆盖成i=2,。
所以对java来说范围在2~200之间。
3.字符串的最大长度为512MB

  • 作者:RichYoungZz
  • 原文链接:https://blog.csdn.net/YoYuanZhizheng/article/details/122217299
    更新时间:2022-08-04 10:05:21