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. 如何选择一台适合Java开发的电脑

    前言 最近在群里有同学求推荐Java开发用的电脑,所以胖哥就出个简单的专题,用我贫瘠的电脑知识来帮助大家选择适合开发的电脑配置.因为家里的主机已经带不动两个 IDEA 了,更别提开个 Docker 啥 ...

  2. WordCount( Java )

    Github项目地址:https://github.com/Sabot1203/WordCount 一. 题目描述 实现一个简单而完整的软件工具(源程序特征统计程序). 进行单元测试.回归测试.效能测 ...

  3. python字典的概念与基本操作

    字典是非常常用的一种数据结构,它与json格式的数据非常相似,核心就是以键值对的形式存储数据,关于Python中的字典做如下四点说明: 1.构造字典对象需要用大括号表示 {},每个字典元素都是以键值对 ...

  4. Java数据结构——AVL树

    AVL树(平衡二叉树)定义 AVL树本质上是一颗二叉查找树,但是它又具有以下特点:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,并且拥有自平衡机制.在AV ...

  5. log4j升级到log4j2

    log4j升级到log4j2 1.导入依赖 log4j2应尽量使用同一版本,否则可能出现不兼容的情况 <!-- log4j2 start --> <!-- log4j-1.2-api ...

  6. CentOS7系统使用rpm方式安装MySQL5.7

    参考:https://blog.csdn.net/wudinaniya/article/details/81094578 1.首先去mysql官网下载rpm包,一个是server包一个是client包 ...

  7. GeneralUpdate2.1.0发布

    GeneralUpdate GeneralUpdate是基于.net framwork开发的一款(c/s应用)自动升级程序.该组件将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台 ...

  8. 热门话题,2020年了,web前端还好找工作吗?

    #大师助手-全网唯一免费上pin 如果你要是和前几年的前端市场相比,那我会告诉你“不好找” 其实好不好找工作,是跟自己的能力分不开的.但是就前端开发这个行业本身来说,它的就业前景还是相当不错的. 随着 ...

  9. element UI dialog 固定高度 且关闭时清空数据

    解决方法:在dialog里写一个div ,div的大小设置为相对视窗的大小就行 <el-dialog title="xxx" :visible.sync="dial ...

  10. 基于Rust-vmm实现Kubernetes运行时

    随着容器及K8s的广泛使用,越来越多的容器安全与隔离问题被暴露出来,如:容器逃逸.水平攻击.DDos攻击等严重威胁了办公和生产环境的安全与稳定,影响了业务的正常运行.安全容器技术孕育而生,产生了kat ...