IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis(1)—— 字符串 -> 正文阅读

[大数据]Redis(1)—— 字符串

Redis 笔记 —— 字符串String

适合用 String 存储的情况

  • 每次需要访问大量的字段
  • 存储的结构具有多层嵌套的时候

1. SET

SET:用于设置。

常用的可选参数:

  • EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value 。
  • PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
  • NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX key value 。
  • XX : 只在键已经存在时, 才对键进行设置操作。

练习:

设置键值对:

> GET key
nul 
> SET key "xxm"
OK
> get key
xxm

对已存在的键进行设置:

> set xxm 123
OK
> get xxm
123
> set xxm 456
OK
> get xxm
456

使用 EX 选项:

> set xxm 123 EX 10
OK
> get xxm
123
> get xxm
null

其中第二条 get 指令是在 10 秒之后执行的,因此 xxm 的值变成了 null。

使用 PX 选项:

> set xxm 123 PX 5000
OK
> get xxm
123
> get xxm
nul

其中第二条 get 指令是在 5000 毫秒之后执行的,因此 xxm 的值变成了 null。

使用 NX 选项:

> set xxm 4567 NX
OK
> set xxm 456755 NX
null
> get xxm
4567

使用 NX 选项时,当 key 不为空时,不会改变对应的 value。

使用 XX 选项:

127.0.0.1:6379> get xxm
"1"
127.0.0.1:6379> set xxm 234 XX
OK
127.0.0.1:6379> get xxm
"234"
127.0.0.1:6379> get xuxumiao
(nil)
127.0.0.1:6379> set xuxumiao 2345 XX
(nil)
127.0.0.1:6379> get xuxumiao
(nil)

2. GET

如果 key 不存在,那么就会返回特殊值 nil,否则返回 key 的值。

如果 key 的值并非字符串类型,那么则会返回一个错误,因为 get 命令只能用于字符串值。

127.0.0.1:6379> get key
"xxm"
127.0.0.1:6379> get abc
(nil)

3. GETSET

先进行一次 get,再 set。

如果键 key 没有旧值, 也即是说, 键 key 在被设置之前并不存在, 那么命令返回 nil 。

127.0.0.1:6379> GETSET xxm 123
"234"
#有旧值,因此显示的是旧值
127.0.0.1:6379> get xxm
"123"

127.0.0.1:6379> get waha
(nil)
#无旧值,因此显示的是 (nil)
127.0.0.1:6379> getset waha 123
(nil)
127.0.0.1:6379> get waha
"123"

4. STRLEN

返回字符串值的长度

127.0.0.1:6379> set xxm THISISREDIS
OK
127.0.0.1:6379> strlen xxm
(integer) 11

5. APPEND

当某个 key 已经存在,并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾,并且返回追加后的长度。

127.0.0.1:6379> get xxm
"THISISREDIS"
127.0.0.1:6379> append xxm version2.0
(integer) 21
127.0.0.1:6379> get xxm
"THISISREDISversion2.0"

6. SETRANGE

从偏移量 offset 开始, 用 value 参数覆写(overwrite)键 key 储存的字符串值。最后返回长度。

127.0.0.1:6379> get xxm
"123456789"

127.0.0.1:6379> setrange xxm 5 aaaaa
(integer) 10

127.0.0.1:6379> get xxm
"12345aaaaa"

7. GETRANGE

截取字符串类型的值的指定部分, 字符串的截取范围由 start 和 end 两个偏移量决定 (包括 start 和 end 在内)。

127.0.0.1:6379> set xxm 123456789
OK
127.0.0.1:6379> get xxm
"123456789"
127.0.0.1:6379> getrange xxm 0 4
"12345"
127.0.0.1:6379> getrange xxm -3 -2
"78"	#负数索引
127.0.0.1:6379> getrange xxm 0 -1
"123456789"		#从第一个到最后一个
127.0.0.1:6379> getrange xxm 0 10000
"123456789"		#超过部分自动忽略

8. INCR 和 DECR

INCR 命令是一个针对字符串的增加操作。 因为 Redis 并没有专用的整数类型, 所以键 key 储存的值在执行 INCR 命令时会被解释为十进制 64 位有符号整数。

127.0.0.1:6379> set xxm 20
OK
127.0.0.1:6379> incr xxm
(integer) 21
127.0.0.1:6379> get xxm
"21"	#以字符串的形式储存

9. MSET 和 MGET

同时为多个 key 设置值、取值。

127.0.0.1:6379> MSET name xxm gender male age 28
OK
127.0.0.1:6379> mget name gender age
1) "xxm"
2) "male"
3) "28"

10. MSETNX

当所有的 key 都不存在时,才会执行批量 set,即使只有一个给定键已经存在,MSETNX命令也会拒绝执行对所有键的设置操作。

127.0.0.1:6379> msetnx name xxm2 skill java weight 75
(integer) 0		
127.0.0.1:6379> get skill
(nil)		#因为name已存在,所以并没有设置任何一个value

11.INCRBY DECRBY

为键 key 储存的数字值加上、减去增量 increment

127.0.0.1:6379> set xxm 100
OK
127.0.0.1:6379> incrby xxm 20
(integer) 120
127.0.0.1:6379> get xxm
"120"
127.0.0.1:6379> decrby xxm 40
(integer) 80
127.0.0.1:6379> get xxm
"80"

12. INCRBYFLOAT

为键key储存的值加上浮点数增量 increment。

127.0.0.1:6379> get xxm
"1.2"
127.0.0.1:6379> incrbyfloat xxm 2.2
"3.4"
127.0.0.1:6379> get xxm
"3.4"
127.0.0.1:6379> incrbyfloat xxm -1.1
"2.3"
127.0.0.1:6379> get xxm
"2.3"
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:36:19  更:2022-03-12 17:40:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:54:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码