String类型

String类型是Redis中最基本的类型,String类型有以下的一些特点:

  • String类型是二进制安全的,这意味着String类型可以包含任何的数据,如:图片、序列化的对象等;
  • Redis中一个String类型的value的大小最大为512M

关于Redis中String类型所用到的数据类型

Redis中String类型底层所用的数据结构是简单动态字符串(SDS),在实现上类似于Java中的ArrayList,采取预分配冗余空间的方式来减少内存的频繁分配。

如上图所示,图中的len是字符串的实际长度,而capacity是实际分配的内存空间,实际分配的内存空间一般长于字符串的长度。当字符串大小小于1M的时候,扩容都是加倍现有的内存空间;如果超过1M,扩容时每次只会多增加1M的内存空间。
注意:String类型最大不能超过512M。

常用命令

往value后追加字符串

append key 追加的内容

如下图:

上面的11是指执行完追加操作之后,value的长度

获取value的长度

strlen key

如下图:

在key不存在时设置key的值

setnx key value

如下图:
设置成功

设置失败(此时key已经存在,所以设置失败)

String类型的数字进行加减法运算

将字符串型的数字进行加法操作

1.自增一

incr key

如下图:

返回加一后的值

2.自增规定的值

incrby key 增加的值

如下图:

PS:incr的自增是属于原子性操作,它不会被线程调度而打断
所谓的原子性操作不同于事务中的原子性,这里的原子性操作指的是不会被线程调度机制打断的操作
前面我们也说了,Redis内是单线程+多路IO复用的机制,所以,Redis的单条指令都是单线程的原子性操作。

将字符串型的数字进行减法操作

1.自减一

decr key

如下图:

2.自减相应的值

decrby key 减少的值

如下图:

同时对多个key和value进行操作

同时设置多个key和value值

1.mset可以进行同时设置多个键值的操作

mset key1 value1 key2 value2 ...

如下图:

2.msetnx和setnx类似,但是它可以同时设置多个键值,而且仅当这些key都不存在的时候

msetnx key1 value1 key2 value2...

如下图:

注意:因为Redis内的原子性的缘故,使用msetnx时如果有一个键值设置失败,则其他的键值也将会设置失败,如下图:

key11这个键已经存在了,所以使用msetnx设置键值失败,而前面的key44和key55也随之设置失败,所以查出来的结果为空

同时获取到多个键(key)的值

mget key1 key2 key3

既然有mset,那么mget也不能少,mget可以同时获取到多个键的值

如下图:

同时获取到多个键里面存放的值。

对一定范围内的值进行操作

1.getrange获取一定范围内的值

getrange <key> <起始位置> <结束位置>

如下图:

我们可以从上图发现,getrange的操作起始类似于Java的substring操作,同样是获取指定范围内的字符串的

2.setrange覆写一定范围内的字符串

setrange <key> <起始位置> <value>

如下图:

3.getset以新值换旧值并获取旧的值

getset <key> <value>

如下图:

在设置key的同时设置过期时间

setex可以在设置key的同时设置key的过期时间

setex <key> <过期时间> <value>

如下图:

Redis初学:5(String类型的基本操作)相关推荐

  1. Redis 学习笔记(1)—— Redis安装,String 类型测试

    1 Redis 介绍 1.1 概述 Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案. Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许 ...

  2. Redis工作笔记-String类型

    目录 简介 操作 简介 Redis存储以key-value的形式进行存储,key只能存字符串类型,value可以为:String.List.Set.Sorted-Sets.Hash: 字符串类型是Re ...

  3. redis命令之string类型setex命令用法详情

    Stirng字符串 SETEX命令 命令:setex key seconds value    设置有效时间为seconds的key-value键值对,单位为秒,返回"OK",若之 ...

  4. redis命令之string类型incr/decr命令用法详情

    Stirng字符串 INCR命令/DECR命令 限制在64位有符号整数 命令:incr key 对key存储的value值+1,并将最终的结果作为返回值:decr key 对key存储的value值- ...

  5. Redis源码-String:Redis String命令、Redis String存储原理、Redis String三种编码类型、Redis字符串SDS源码解析、Redis String应用场景

    Redis源码-String:Redis String命令.Redis String存储原理.Redis String三种编码类型.Redis字符串SDS源码解析.Redis String应用场景 R ...

  6. 带你掌握Redis数据类型:string和Hash

    摘要:Redis中有五大数据类型,分别是String.List.Set.Hash和Zset. 本文分享自华为云社区<Redis的string类型常用命令解析>,作者:灰小猿 . 先问大家一 ...

  7. 系统学习redis之五——redis数据类型之list类型及操作

    list数据类型介绍 list是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key可以理解为链表的名字.redis的list类型其实就是一个每个子元素都是string类型 ...

  8. 小白学C++ L11 数组和字符数组及string 类型

    数组 C++使用数组来实现一次性声明很多变量的功能,具有以下特性: 创建后的数组大小固定 同一数组中的元素类型相同 是一系列数据顺序集合 数组如何声明 在C++中声明数组时,需要指定元素类型.数组名称 ...

  9. Redis 笔记(03)— string类型(设置key、获取key、设置过期时间、批量设置获取key、对key进行加减、对key值进行追加、获取value子串)

    字符串 string 是 Redis 最简单的数据结构.Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据.不同类型的数据结构的 ...

最新文章

  1. 不要怂,就是GAN (生成式对抗网络) (六):Wasserstein GAN(WGAN) TensorFlow 代码
  2. python实现简单的api接口-对Python实现简单的API接口实例讲解
  3. 复用的具体实现方式组合与继承的特点
  4. Emacs高亮设置:Hi-Lock mode笔记
  5. c++ 函数过长 拆分_实用EXECL办公函数 【多条件排名】
  6. JQ 实现点击按钮显示弹窗,点击非弹窗和按钮区域隐藏弹窗
  7. Struts2.xml
  8. python中使用%与.format格式化文本
  9. 文件标准标准IO与文件IO 的区别
  10. 软件开发人员如何提高个人和团队工作效率
  11. mysql 子链接_MySQL多表查询实例详解【链接查询、子查询等】
  12. 天大18年c语言离线作业,2018春 Python语言程序设计(天津大学仁爱学院)-中国大学mooc-题库零氪...
  13. Lagrange multiplier method (拉格朗日乘数法)
  14. cocos2d-之音乐背景播放
  15. 案例三:淘宝用户行为分析
  16. mdx词典包_欧路词典PC端 词库安装 渲染
  17. 满城尽带黄金“假”(二)——断臂殇为谁而鸣
  18. Ubuntu最全问题汇总(好东西分享了)
  19. 区块链浏览器在linux下部署
  20. 对比Mac OS上的PF与iptables

热门文章

  1. 【进阶玩法】Angular用emit()实现类似Vue.js的v-model双向绑定[(ngModel)]功能
  2. 舒工自定义AJAX-lite 1.0实用型极简方法
  3. 用Python和项目进行机器学习(初学者) Machine Learning A-Z with Python with Project (Beginner)
  4. 完整的Python 3和树莓Pi大师课 Complete Python 3 and Raspberry Pi Masterclass
  5. Blender多米诺骨牌动画学习教程 The Impossible Domino Run in Blender
  6. Linux 的内存管理工具和调优参数
  7. Go 分布式学习利器(6)-- Map
  8. linux进程间通信:命名管道FIFO
  9. 数据结构|-常见数据结构整理
  10. python 之路,Day11 (下)- sqlalchemy ORM