String

append

如果key已存在,则直接在value追加值,如果key不存在,则会插件一个新的value为空的key,然后在追加

127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> append name " hello"
(integer) 10
127.0.0.1:6379> get name
"lisi hello"

返回的是最末尾字符串的位置

decr

可以实现对value进行-1操作

127.0.0.1:6379> get age
"15"
127.0.0.1:6379> decr age
(integer) 14
127.0.0.1:6379> get age
"14"

返回的值是-1之后的值也就是该key目前值,注意对非整数字符串操作会报错

decrby

decr一样,只不过可以自定义步长

127.0.0.1:6379> decrby age 5
(integer) 9
127.0.0.1:6379>

注意:自减操作是可以一直减下去

get

获取对应的key,不存在则返回nil

getrange

返回key对应的value的字串(字符串中的连续某一段),字串有start和end决定范围,从左往右,从0开始

127.0.0.1:6379> get hello
"hello redis"
127.0.0.1:6379> getrange hello 0 4
"hello"

字符串的结果输出始终是从左往右

getrange key start end.注意:如果下标是负数,则位置从右往左,start和end都如此

始终记得,start是开始,start的位置就已经决定字串的最终可能性范围,start决定了子串开始的位置,

那么.end的结束位置必须在start的右边才有值,不管是从左往右还是从右往左

getset

为指定的key设置值并返回修改之前的值

127.0.0.1:6379> getset name zhangsan
"lisi hello"
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379>

incr

+1

127.0.0.1:6379> get age
"4"
127.0.0.1:6379> incr age
(integer) 5

和decr注意是一样值要是整数

incrby

如上,自加自定义步长

incrbyfloat

增长浮点数

必须给定增长的点数

127.0.0.1:6379> set key2 3.3
OK
127.0.0.1:6379> incrbyfloat key2 0.3
"3.6"
127.0.0.1:6379>

注意,在定义一个key的时候,如果给的值精确到小数点后两位,么在增长的时候它的精度会自动增加

如下:

127.0.0.1:6379> get key1
"45.36"
127.0.0.1:6379> incrbyfloat key1 0.5
"45.859999999999999"

mget和mset

就是get和set的批量操作

  • MGET的语法格式:MGET key1 key2 key3
  • MSET的语法格式:MSET key1 value1 key2 value2 ... ...
127.0.0.1:6379> mget name age
1) "zhangsan"
2) "5"
127.0.0.1:6379> mset name jack age 20
OK
127.0.0.1:6379> mget name age
1) "jack"
2) "20"
127.0.0.1:6379>

setex

给指定的key设置值并设置过期时间,单位为秒

127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> setex name 30 aron
OK

psetex

同上,单位为毫秒

setnx

setnx是set if not exists,如果key已存在,不做操作,只有在key不存在则创建新的key

127.0.0.1:6379> setnx name jack
(integer) 1
127.0.0.1:6379> setnx name aron
(integer) 0
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379>

msetnx

批量操作,注意是类似事务的操作

如下:因为name已经存在,导致key5也无法创建

127.0.0.1:6379> msetnx name aron key5 23
(integer) 0
127.0.0.1:6379> get key5
(nil)
127.0.0.1:6379>

setrange

getrange类似,相当于在字符串的一个范围内替换值,

setrange key index value

index:开始的下标位置,直到value的长度结束位置

127.0.0.1:6379> get text
"hello world"
127.0.0.1:6379> setrange text 6 redis
(integer) 11
127.0.0.1:6379> get text
"hello redis"
127.0.0.1:6379> setrange text 6 xx
(integer) 11
127.0.0.1:6379> get text
"hello xxdis"
127.0.0.1:6379>

strlen

计算key的value的长度

Redis中String类型的相关命令操作的更多相关文章

  1. Redis中LIST列表的相关命令

    Redis中LIST列表的相关命令 添加 lpush 将一个或多个value插入到key的表头,如果存在多个value,那么各个value按从左到右的顺序依次插入表头 插入表头:意味着新插入的值在最前 ...

  2. Redis 中 String 类型的内存开销比较大

    使用 String 类型内存开销大 1.简单动态字符串 2.RedisObject 3.全局哈希表 使用 Hash 来存储 总结 参考 使用 String 类型内存开销大 如果我们有大量的数据需要来保 ...

  3. Redis中String类型的Value最大可以容纳数据长度

    项目中使用redis存储,key-value方式,在Redis中字符串类型的Value最多可以容纳的数据长度是512M 官方信息: A String value can be at max 512 M ...

  4. Redis中有序列表(ZSet)相关命令

    redis语序集合和集合set是一样内部value为string类型的集合,有序不允许重复元素 但是,zset的每个元素有一个double类型的分数(score).redis正是靠这个分数对元素从小到 ...

  5. java中String类型的相关知识

    String类方法整理说明: ·Length()用来求字符串的长度,返回值为字符串的长度: ·charAt()取该字符串某个位置的字符,从0开始,为char类型: ·getChars()将这个字符串中 ...

  6. redis对string进行的相关操作

    redis对string类型操作的相关命令以及如何在python使用这些命令 redis对string类型操作的命令: 命令 语法 概述 返回值 Redis SET 命令  set key value ...

  7. Redis中的数据结构与常用命令

    开发系统:Ubuntu 17.04Redis驱动:StackExchange.Redis 1.2.3Redis版本:3.2.1开发平台:.NET Core 对于Redis的介绍这里只写一句:Redis ...

  8. Redis中的原子操作(2)-redis中使用Lua脚本保证命令原子性

    Redis 如何应对并发访问 使用 Lua 脚本 Redis 中如何使用 Lua 脚本 EVAL EVALSHA SCRIPT 命令 SCRIPT LOAD SCRIPT EXISTS SCRIPT ...

  9. 使用Redis数据库(String类型)

    一 String类型 首先使用启动服务器进程 : redis-server.exe 1. Set 设置Key对应的值为String 类型的value. 例子:向 Redis数据库中插入一条数据类型为S ...

随机推荐

  1. Federated Learning with Matched Averaging

    挖个坑吧,督促自己仔细看一遍论文(ICLR 2020),看看自己什么时候也能中上那么一篇(流口水)~ 郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 联邦学习允许边缘设 ...

  2. SLS案例中心

    今日PV nginx日志查看今日的PV和昨日的对比,先通过count函数计算总的pv,再用compare函数得出今日的pv和昨日的同比. 通过单值图进行展示,显示值为20.381Mil,对比值为-2% ...

  3. 消息型中间件之RabbitMQ集群

    在上一篇博客中我们简单的介绍了下rabbitmq简介,安装配置相关指令的说明以及rabbitmqctl的相关子命令的说明:回顾请参考https://www.cnblogs.com/qiuhom-187 ...

  4. html行内块元素之间的缝隙

    关于html行内块元素之间缝隙的那点儿事情 事情是这样子的,我起初打算验证使用transform属性的标签是否会影响其他的标签的布局,于是写了下面一段代码: <!DOCTYPE html> ...

  5. IDEA实用插件推荐及使用方法详解

    当前使用的IDEA版本是2020.1.随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐.以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件. Tra ...

  6. NOR Flash 与 NAND Flash 的区别

    闪速存储器 闪速(Flash)存储器是一种电可擦除可多次编程的存储器.工艺上主要有两类:或非(NOR)型阵列和与非(NAND)型阵列. 项目 读取速度 写入速度 擦除速度 特性 其他 NOR Flas ...

  7. python小白入门基础(二:变量)

    #变量:可以改变的量就是变量,实际上是由内存开辟的一块空间,临时存在内存中,以便后续代码使用.#作用:代指内存中某个地址中的内容. #1.变量的概念name = "王五"name ...

  8. 对于分布式Job的思考

    引言 在清理Github的时候,发现以前写的一个简单的分布式任务分发系统ClawHub/task-distribution,使用了zk的选主与队列,调度器使用spring的ThreadPoolTask ...

  9. git 如何比较不同分支的差异

    前两天,良许在做集成的时候碰到了一件闹心事.事情是这样的,良许的一位同事不小心把一个错误的 dev 分支 merge 到了 master 分支上,导致了良许编译不通过.于是,我们需要将版本回退到 me ...

  10. Kubernetes 初体验(先占个坑)