1. string类型简介

string类型是二进制安全的,能够存储任意类型的字符串。

string类型是最常用到的数据类型,一种常用的用法就是将对象格式化为JSON字符串然后放到redis中,取出来的时候再反序列,不过如果序列化为二进制的话速度更快,占用空间更小。

一个字符串类型键允许存储的最大容量是512M

2. 如何使用

赋值

set <key> <value>

可以使用append命令追加值,如果指定的key不存在的话就相当于set key value,否则的话就在value后面追加,并将追加后的value的字节长度返回:

append <key> <value>

需要注意的是如果是中文的话,因为中文都是使用UTF-8编码的,一个中文占3个字节,所以当已经存在一个中文并追加另一个中文的时候,返回的长度是6:

使用mset可以同时设置多个值,格式是:

mset <key> <value> [<key> <value> …]

取值

使用get命令取值,取值的格式:

get <key>

当key存在时返回对应的value:

否则返回一个nil:

使用mget可以同时取多个值,返回值是一个列表,当指定的某个key不存在时则返回nil:

mget <key> [<key> …]

取value字节长度

使用strlen取出指定key对应的value的字节长度

strlen <key>

需要注意的是string存储的时候对于中文是UTF-8编码的,一个中文对应着三个字节:

当指定的key不存在时,返回值是nil:

操作数字

当string中存储的是数字类型的时候,可以使用递增命令递增1,这个递增操作是原子操作。

当指定的key不存在时默认为0,即对于一个不存在的key递增的时候会返回1:

而对于一个已经存在的key,将其值加1返回:

incr递增只能用于整数类型,否则的话会抛出错误提示不是integer类型:

与incr对应的命令是decr,使用decr每次将指定的key递减1:

使用incrby、decrby可以指定每次递增递减的量:

使用incrbyfloat一次自增一个小数值:

但是并没有decrbyfloat这样的操作,如果需要递减一个小数的话只需要递增一个负数就可以了:

总结一下数字操作:

incr 递增1
decy 递减1
incrby 递增指定的整数
decrby 递减指定的整数
incrbyfloat 递增指定的小数

所有的数字操作都是当指定的key不存在时就默认为0,并在此基础上操作。

.

Redis数据类型之字符串(string)的更多相关文章

  1. Redis数据类型之字符串String

    String类型是Redis中最基本也最简单的一种数据类型 首先演示一些常用的命令 一.SET key value 和GET key SET key value 和 GET key  设置键值和获取值 ...

  2. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  3. Javascript基础系列之(三)数据类型 (字符串 String)

    javascript一共有9种数据类型 字符串 String 数值型 Number 布尔型 Boolean 未定义 Undefine 空值 Null 对象 Object 引用Refernce 列表型 ...

  4. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  5. Redis数据类型(字符串)

    Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...

  6. Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构

    一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使 ...

  7. 4-Python3从入门到实战—基础之数据类型(字符串-String)

    Python从入门到实战系列--目录 字符串表示 在 Python 3版本中,字符串是以 Unicode 编码的:Python 中使用 ' '或者" "表示字符串 msg = 'H ...

  8. redis数据类型:String

    redis数据类型:String 花开堪折直需折,莫待无花空折枝 实际应用中有多种多样的场景,比如: 秒杀 新闻热点 在线人数 session.token管理 各个场景需要的数据类型各不相同:常见的数 ...

  9. Redis数据类型使用场景及有序集合SortedSet底层实现详解

    Redis常用数据类型有字符串String.字典dict.列表List.集合Set.有序集合SortedSet,本文将简单介绍各数据类型及其使用场景,并重点剖析有序集合SortedSet的实现. Li ...

随机推荐

  1. 在MFC中显示cmd命令行

    添加函数 void InitConsoleWindow1() { ; FILE* fp; AllocConsole(); nCrt = _open_osfhandle((long)GetStdHand ...

  2. 虚拟机中安装 centOS,本地安装 SSH 连接 - 01

    下面把自己安装 centOS 的过程记录下,选取的版本是 centOS6.8 ,下载地址在脚本之家 down 的 : 阿里云 x64 http://mirrors.aliyun.com/centos/ ...

  3. debug - vue中通过ajax获取数据时,如何避免绑定的数据中出现property of undefined错误

    因为获取服务器是异步的,所以 vue 先绑定数据. 如果 ??? 是通过 ajax 异步获取的,在获取之前,???是未定义的.此时在外面的标签上添加一个 v-if="???" 可以 ...

  4. Shortest Prefixes POJ - 2001(统计次数)

    题意: 输出每个单词的缩写  使得每个单词 互不相同.. 解析: 统计每个前出现的次数...然后在查询的时候  遇到次数为1的返回即可.. #include <iostream> #inc ...

  5. 51nod 1532 带可选字符的多字符串匹配(位运算)

    题意: 有一个文本串,它的长度为m (1 <= m <= 2000000),现在想找出其中所有的符合特定模式的子串位置.符合特定模式是指,该子串的长度为n (1 <= n <= ...

  6. 【转】.gitignore失效的解决办法

    转自:http://foreverdo.diandian.com/post/2012-09-20/40038034798 How to make .gitignore works? Just got ...

  7. castle activerecord 学习过程出现的问题

    优点: 1.CRUD:代码简洁 2.不用配置map 3.自带事务方便 4.自带IOC 5.自带 数据有效性验证 缺点: 1.自增长(Oracle 一直提示序号不存在,有空继续尝试) 2.多条件,直接用 ...

  8. 微软.NET Framework cve-2017-8759 复现

    0x00 漏洞前言 FireEye公司最近发现一份恶意微软Office RTF文档,其中利用到一项SOAP WSDL解析器代码注入漏洞——编号CVE-2017-8759.该漏洞允许恶意人士在解析SOA ...

  9. 【agc017E】Jigsaw

    Portal -->agc017 Description 给你\(n\)块积木,每块积木由三个矩形组成,中间的矩形最高高度为\(h\),左边的矩形高度为\(a_i\)离底边高度为\(c_i\), ...

  10. 框架----Django之Form提交验证(一)

    一.Form提交验证与Ajax提交验证的运用实例 Form表单提交时会刷新页面,输入失败时,输入框内内容也会随之刷新不能保留:而Ajax提交是在后台偷偷提交,不会刷新页面,因此也就可以保留页面输入框内 ...