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. 1.Oracle数据库简介

    Oracle数据库简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracl ...

  2. SimpleXMLElement::addChild添加同级的空值xml节点

    SimpleXMLElement::addChild添加同级的空值xml节点后,变成了其后面节点的父节点 解决方案:将节点以属性值的方式赋空值,$info->CONV_LEGAL_UNIT_NU ...

  3. HM16.0 TAppEncoder

    参考:  https://www.cnblogs.com/tiansha/p/6458573.html https://blog.csdn.net/liangjiubujiu/article/deta ...

  4. python列表元素的基本操作

    1.列表元素的增加 python提供三种方法增加元素,append,extend,insert. 区别:例  list3=[1,10,100,1000,10000] A.   list3.append ...

  5. computed&watch

    computed 定义:根据其他属性被计算出来的值 computed :{ [key: string]: Function | { get: Function, set: Function } } 是 ...

  6. Shell编程—图形化脚本

    1创建文本菜单 1.1普通的文本菜单 $ cat menu1 #!/bin/bash # simple script menu function diskspace { clear df -k } f ...

  7. [CSP-S2019]括号树 题解

    CSP-S2 2019 D1T2 刚开考的时候先大概浏览了一遍题目,闻到一股浓浓的stack气息 调了差不多1h才调完,加上T1用了1.5h+ 然而T3还是没写出来,滚粗 思路分析 很容易想到的常规操 ...

  8. HTTPS协议原理解析

    一.对称加密与非对称加密 1,定义: 对称加密:加密和解密的秘钥使用的是同一个. 非对称加密:与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatek ...

  9. Maxscript中渲染中文版Vray完成贴图(VrayCompleteMap)的方法

    Objbakeproperties = $.INodeBakeProperties; --选定对象的烘培节点 Prjbakeproperties = $.INodeBakeProjProperties ...

  10. Linux 操作系统 基础

    root: 管理员 /: 根目录[windows : 计算机] ~: 家目录: 管理员:/root/.. 非管理员:/home/... 命令提示符: [root@localhost abc]#: ro ...