博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis String
阅读量:6458 次
发布时间:2019-06-23

本文共 1822 字,大约阅读时间需要 6 分钟。

hot3.png

 

String(字符串)

首先 Redis 没有专用的整数类型,那么字符串必须可以暗含整数和浮点类型,Redis内部会自动判断一个加入的字符串是否是数值类型,如果是数值类型,那么 key 内储存的字符串被解释为十进制 64 位有符号整数来执行数学相关运算的操作。

 

1、基础操作

> append key value

把value添加到指定key值的末尾,同时返回字符的长度,一个汉字长度为3,如果key不存在,则等价于set操作。

 

>strlen key

返回值的长度,一个汉字长度为3,key不存在返回为 0 。

 

 

2、getXXXX

>get key

返回指定key的值,如果Redis不存在这个key,返回null

 

>mget key1 key2

返回所有(一个或多个)给定 key 的值

 

>getrange key start end

返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。负数偏移量表示从字符串最后开始计数, -1 表示最后一个字符, -2 表示倒数第二个,以此类推。注意这里的 end 可以超出值的最大长度。

 

>getset key value

返回key的旧值(如果不存在返回为null),同时为key设定新值。

 

 

3、setXXX

>set key value

为key指定新的值,同时重新设置生存时间。

 

>setex key seconds value

原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,单位是秒。

 

>psetex key millseconds value

原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,单位是毫秒。

 

>setnx key value

将 key 的值设为 value ,当且仅当 key 不存在(SET if Not eXists)。若给定的 key 已经存在,则 SETNX 不做任何动作。

>mset key1 1234 key2 4567

设置一个或多个key的值

 

>msetnx key1 1234 key2 4567

同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在(if Not eXist),而且这个操作是原子性的,要么全部成功,要么全部失败。

 

>setrange key offset value

用 value 参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 offset 开始。不存在的 key 当作空白字符串处理。SETRANGE 命令会确保字符串足够长以便将 value 设置在指定的偏移量上,如果给定 key 原来储存的字符串长度比偏移量小(比如字符串只有 5 个字符长,但你设置的 offset 是 10 ),那么原字符和偏移量之间的空白将用零字节(zerobytes, "\x00" )来填充。

当生成一个很长的字符串时,Redis 需要分配内存空间,该操作有时候可能会造成服务器阻塞(block)。在2010年的Macbook Pro上,设置偏移量为 536870911(512MB 内存分配),耗费约 300 毫秒, 设置偏移量为 134217728(128MB 内存分配),耗费约 80 毫秒,设置偏移量 33554432(32MB 内存分配),耗费约 30 毫秒,设置偏移量为 8388608(8MB 内存分配),耗费约 8 毫秒。 注意若首次内存分配成功之后,再对同一个 key 调用 SETRANGE 操作,无须再重新内存。

 

4、i++,i--

>incr key

原子性自增操作,如果key不存在则默认为-,然后+1。

 

>incrby key num

指定的key值加num,返回结果值,如果key不存在,那么默认设置为 0,再加num。

 

>incrbyfloat key num

为 key 中所储存的值加上浮点数增量 num.

 

> decr key

指定的key值减1,返回结果值,如果key不存在,那么默认设置为 0,再减1。

 

>decrby key num

指定的key值减num,返回结果值,如果key不存在,那么默认设置为 0,再减num。

 

 

转载于:https://my.oschina.net/heweipo/blog/746545

你可能感兴趣的文章
DNS为什么通常都会设置为14.114.114.114
查看>>
给定一个序列,判断该序列是否为二叉树查找树的后序遍历序列
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
深度 | 机器学习敲门砖:任何人都能看懂的TensorFlow介绍【转】
查看>>
leveldb学习:DBimpl
查看>>
MySQL存储引擎--MYSIAM和INNODB引擎区别
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>
apache 配置
查看>>
SHOW CREATE DATABASE Syntax
查看>>
mysql 视图
查看>>
Spring <context:annotation-config/> 说明
查看>>
lua
查看>>
Java排序算法(四):Shell排序
查看>>
poj_3468 伸展树
查看>>
Linux ag命令
查看>>
【BZOJ】3495: PA2010 Riddle
查看>>
windows执行命令来运行loadrunner录制好的脚本(收藏)
查看>>