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. 4.设置静态IP

    由于Ubuntu重启之后,ip很容易改变,可以用以下方式固定ip地址 1.设置ip地址 vi /etc/network/interface # The loopback network interfa ...

  2. SparkSQL DSL开发(Old)

    import org.apache.spark.sql.SQLContextimport org.apache.spark.sql.expressions.Windowimport org.apach ...

  3. Go:grpc

    一.grpc安装 将 https://github.com/google/go-genproto 修改文件名放到 $GOPATH/src/google.golang.org/genproto 将 ht ...

  4. springboot2整合activiti7具体步骤

    写在前面 需要提前了解的内容有 springboot.springSecurity.activiti基本使用 关于activiti Activiti项目是一项新的基于Apache许可的开源BPM平台, ...

  5. LG P4161 [SCOI2009]游戏/LG P6280 [USACO20OPEN]Exercise G

    Description(P4161) windy学会了一种游戏. 对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应. 最开始windy把数字按顺序1,2,3,……,N写一排在纸上. 然后再在 ...

  6. 简单易懂的JS继承图解

    JS继承的实现方式一共有八种.下面我们来一个一个瞅一下.注意️:文章依据个人理解,难免有问题,还望各位及时指出!!!!! 原型链继承 借用构造函数继承 组合继承 原型式继承 寄生继承 寄生组合式继承 ...

  7. Java面试题(异常篇)

    异常 74.throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是指 ...

  8. 【socket编程基础模板】

    网络编程的基础是基于socket编程.socket(TCP)编程基于固定编程模板 server端: socket(声明socket类型) bind(命令socket,绑定地址和端口) listen(创 ...

  9. 企业网站SEO如何选择关键词

    http://www.wocaoseo.com/thread-17-1-1.html       企业网站的关键词应该如何去选择?有很多的企业老板在网上某某企业在网上做了一个网站,一天盈利多少后,觉得 ...

  10. 5G边缘计算:开源架起5G MEC生态发展新通路

    摘要:‍‍本文尝试从‍‍边缘计算的角度来阐述了‍‍为什么‍‍要把边缘计算当做一种新的生产关系来构建,‍‍以及如何用开源来构建这种新的生产关系. 5G推动新一轮工业革命 过去‍‍人类经历了三次工业革命, ...