Redis数据类型之字符串(string)
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)的更多相关文章
- Redis数据类型之字符串String
String类型是Redis中最基本也最简单的一种数据类型 首先演示一些常用的命令 一.SET key value 和GET key SET key value 和 GET key 设置键值和获取值 ...
- Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术
3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...
- Javascript基础系列之(三)数据类型 (字符串 String)
javascript一共有9种数据类型 字符串 String 数值型 Number 布尔型 Boolean 未定义 Undefine 空值 Null 对象 Object 引用Refernce 列表型 ...
- python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary
#python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...
- Redis数据类型(字符串)
Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...
- Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构
一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使 ...
- 4-Python3从入门到实战—基础之数据类型(字符串-String)
Python从入门到实战系列--目录 字符串表示 在 Python 3版本中,字符串是以 Unicode 编码的:Python 中使用 ' '或者" "表示字符串 msg = 'H ...
- redis数据类型:String
redis数据类型:String 花开堪折直需折,莫待无花空折枝 实际应用中有多种多样的场景,比如: 秒杀 新闻热点 在线人数 session.token管理 各个场景需要的数据类型各不相同:常见的数 ...
- Redis数据类型使用场景及有序集合SortedSet底层实现详解
Redis常用数据类型有字符串String.字典dict.列表List.集合Set.有序集合SortedSet,本文将简单介绍各数据类型及其使用场景,并重点剖析有序集合SortedSet的实现. Li ...
随机推荐
- 目标跟踪之Lukas-Kanade光流法(转)
光流是图像亮度的运动信息描述.光流法计算最初是由Horn和Schunck于1981年提出的,创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法.光流计算基于物体移动的光学特性提 ...
- Navicat Premium_11.2.7简体中文版 破解版本 windows版本
亲测可用 自己一直在用的 https://pan.baidu.com/s/1VVKKQoIKVB0BgNXBK4YTrQ
- yum 安装php环境
centos下安装php环境 | 浏览:3831 | 更新:2014-11-04 17:01 1 2 3 分步阅读 在网上看了很多,很多都不能用,所以就把能用的实践下,过程记录下,方便自己和网友以后查 ...
- Halcon 笔记3 形态学
Halcon 三大数据类型: (1)图像 (2)区域 (3)XLD 查看时间工具 如果想让图像减少,则进行腐蚀(或者使用开运算),反之,则进行膨胀(或闭运算) 腐蚀后再进行膨胀,相当于进行开运算.因 ...
- day4 列表 增删改查 元组
增lis=["a","b","c",5,7,4]lis.append("s")#在列表的末尾追加lis.extend(& ...
- BZOJ3884 上帝与集合的正确用法(欧拉函数)
设f(n)为模n时的答案,由2k mod n=2k mod φ(n)+φ(n) mod n(并不会证),且k mod φ(n)=f(φ(n)),直接就可以得到一个递推式子.记搜一发即可. #inclu ...
- elasticsearch 第四篇(API约定)
对多个indices进行操作 es中大多resetapi支持请求多个index, 例如”test1,test2,test3”,index也可以使用通配符, 例如”test*“, 还可以使用+,-来包含 ...
- BZOJ5333 [Sdoi2018]荣誉称号 【差分 + 树形dp】
题目链接 BZOJ5333 题解 看到式子,立即想到二叉树上一个点及其\(k\)个父亲权值和[如果有的话]模\(m\)意义下为\(0\) 考虑如何满足条件 我们假设\(1\)号为第\(0\)层 那么我 ...
- 洛谷 3201 [HNOI2009]梦幻布丁 解题报告
3201 [HNOI2009]梦幻布丁 题目描述 \(N\)个布丁摆成一行,进行\(M\)次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为\(1,2,2 ...
- 洛谷 P2604 [ZJOI2010]网络扩容 解题报告
P2604 [ZJOI2010]网络扩容 题目描述 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用.求: 1. 在不扩容的情况下,1到N的最大流: 2. ...