String类型是Redis中最基本也最简单的一种数据类型

首先演示一些常用的命令

一、SET key value 和GET key

SET key value 和 GET key  设置键值和获取值

SET将键today的值设为tuesday;GET取出键today的值

SET命令执行成功后返回OK;GET返回要取到的值

当一个key已经有值时,使用SET会覆盖其原有值,并且不受类型限制

today的原有值"tuesday"被"12"覆盖。Redis里没有整数类型,即使SET赋值一个整数,也会以字符串形式存储

当使用GET操作一个不存在的键时,返回nil

注意:当使用SET给定一个普通的值时,不需要加双引号,但当值有空格或其他特殊字符时,需要加上引号,否则会报语法错误

二、GETRANGE key start end


作用:获取存储在指定key中的字符串的子字符串,字符串的截取范围由start和end来决定【不同于其他脚本语言,这里的start和end都是闭区间】

同其他脚本一样,Redis的索引也是从0开始

GETRANGE的使用方法如下:

GETRANGE test 0 3 :从索引0开始由左至右取到索引为3的字符

GETRANGE test 0 -1 : -1代表从右至左的第一个字符,也就是字符串的末位字符,那么这条命令就是取到字符串的全部

三、GETSET key value

作用:设置指定key的值,并返回key旧的值

当指定key之前并不存在时,使用GETSET会为key创建一个值,并且返回nil;当key存在时,会为其指定一个新值,并且将原有值返回

四、GETBIT key value

作用:对key所存储的字符串值,获取指定偏移量上的位

GETBIT对于不存在的key或者不存在的offset,返回0

当offset存在时,返回偏移量上的位

五、MGET key1 key2 ... keyn

作用:返回所有给定key的值,如果某个key不存在,返回nil

key1和key2都存在,返回其值;keynotexist并不存在,获取其值时返回nil

六、SETBIT key offset

作用:对key所存储的字符串值,设置或清除指定偏移量上的位

当没有使用SETBIT设置偏移量的位时,使用GETBIT将返回0

七、SETEX key seconds value

作用:为指定的key设置值和过期时间,如果key已存在,则新值会覆盖旧值

"TTL key" 可以获取key的剩余存在时间,如果在执行GET时,key存在则返回其值;不存在,返回nil

八、SETEX key value

作用:当指定的key不存在时,才给其设置指定的值。设置成功返回1,失败返回0

当key已存在,使用SETNX不会执行成功,返回0

九、SETRANGE key offset value

作用:用指定的字符串覆盖指定key的字符串值,覆盖的位置从偏移量offset开始

十、STRLEN key

作用:返回指定key的字符串值的长度,当key不存在时返回0

十一、MSET key1 value1 key2 value2 ... keyn valuen

作用:同时设置一个或多个k-v对

十二、MSETNX key1 value1 key2 value2 ... keyn valuen

作用:同时设置一个或多个k-v对,当且仅当key都不存在时

当key都不存在时,使用MSETNX

当有key存在时,使用MSETNX

MSET操作是原子性操作,由于键rmdbs已存在,所以language并没有被设置,rmdbs的值也未被修改

十三、PSETEX key milliseconds value

作用:同SETEX命令相似,但SETEX的时间是以秒为单位,PSETEX以毫秒为单位

十四、INCR key

作用:将指定key的值递增加1。如果key不存在,则会被初始化为0;如果key的值的类型不是数字或有特殊字符,返回错误信息

INCR执行成功后,返回递增后的值

由于pageCount之前并不存在,则会被初始化为0,经过INCR操作之后,值递增为1

如果INCR操作的key的值类型不对,则会报错

十五、INCRBY key increment

作用:给key所存储的值加上指定的增量值

当key存在且是数字时,INCRBY会返回增加后的值

当key不存在时,INCRBY增加的值即为key的值

当key存在,但值不是数字值时

十六、INCRBYFLOAT key increment

作用:给key所存储的值加上浮点增量值

当key和increment都不是指数符号时

当key的值是整数值时

忽略无意义的0

当key和increment都是指数符号时,执行后格式会改为非指数符号

十七、DECR key

作用:同INCR key相反,将key的值减1,同样key不存在时会被初始化为0

当对存在数值键key操作时

当key不存在时,key被创建并初始化为0,再减1

当key存在,但值不是数字值时

十八、DECRBY key decrement

作用:key 所储存的值减去给定的减量值

当key存在时

当key不存在时

十九、APPEND key value

作用:如果key已经存在并且是字符串值,APPEND将value追加到值的末尾,返回追加后的字符串的长度

当key不存时

当key存在时

Redis数据类型之字符串String的更多相关文章

  1. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  2. Javascript基础系列之(三)数据类型 (字符串 String)

    javascript一共有9种数据类型 字符串 String 数值型 Number 布尔型 Boolean 未定义 Undefine 空值 Null 对象 Object 引用Refernce 列表型 ...

  3. python 数据类型: 字符串String / 列表List / 元组Tuple / 集合Set / 字典Dictionary

    #python中标准数据类型 字符串String 列表List 元组Tuple 集合Set 字典Dictionary 铭记:变量无类型,对象有类型 #单个变量赋值 countn00 = '; #整数 ...

  4. Redis数据类型(字符串)

    Redis存放的字符串为二进制是安全的.字符串长度支持到512M. incr 递增数字INCR key 当存储的字符串是整数时,redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递 ...

  5. Redis数据类型之字符串(string)

    1. string类型简介 string类型是二进制安全的,能够存储任意类型的字符串. string类型是最常用到的数据类型,一种常用的用法就是将对象格式化为JSON字符串然后放到redis中,取出来 ...

  6. Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构

    一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使 ...

  7. 4-Python3从入门到实战—基础之数据类型(字符串-String)

    Python从入门到实战系列--目录 字符串表示 在 Python 3版本中,字符串是以 Unicode 编码的:Python 中使用 ' '或者" "表示字符串 msg = 'H ...

  8. redis数据类型:String

    redis数据类型:String 花开堪折直需折,莫待无花空折枝 实际应用中有多种多样的场景,比如: 秒杀 新闻热点 在线人数 session.token管理 各个场景需要的数据类型各不相同:常见的数 ...

  9. Redis数据类型使用场景及有序集合SortedSet底层实现详解

    Redis常用数据类型有字符串String.字典dict.列表List.集合Set.有序集合SortedSet,本文将简单介绍各数据类型及其使用场景,并重点剖析有序集合SortedSet的实现. Li ...

随机推荐

  1. 业务逻辑 : forex & mlm

    业务逻辑 公司通过mlm的制度和顾客进行签约来收取资金,再把资金给第三方公司进行投资,再把所投资的回报给分配给公司和顾客. 公司的资金来自投资者,公司的营销策略来自mlm的制度,由市场人员来创建mlm ...

  2. List实现行转列的通用方案

    最近在做报表统计方面的需求,涉及到行转列报表.根据以往经验使用SQL可以比较容易完成,这次决定挑战一下直接通过代码方式完成行转列.期间遇到几个问题和用到的新知识这里整理记录一下. 阅读目录 问题介绍 ...

  3. JavaScript中定义变量和存储值的类型判断

    以严谨的语法表示作为前提 首先变量被定义,然后给变量赋予一定的值,变量真正的作用就是存储值 变量的定义和赋值 变量的定义: var a 使用关键字var+变量名表示定义一个变量 a 变量的赋值: va ...

  4. 小白能学好UI设计吗

    许多童鞋在接触UI培训前会有很多疑问,我是干快递的,我能学好UI设计吗,UI培训要学些什么,电脑操作我好像什么都不会,除了打游戏,我适合学UI设计吗--有这些想法呢是人之常情,但是我们反过来想一想,有 ...

  5. 数据库笔试面试题库(Oracle、MySQL等)

    数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...

  6. 【2-24】for循环嵌套,跳转语句,异常语句,穷举法、迭代法

    For循环嵌套与if嵌套相似,是在for中再套for,其结构如下: For(;;) { For(;;){} }经典题型为打印星星例: Console.Write("请输入一个奇数:" ...

  7. Spring-boot 最小demo

    POM 文件,注意红色部分: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http: ...

  8. TextView加边框,自定义,上下左右四条线 颜色,想用哪个用哪个

    1.这是一个自定义的TextView ,看吧,底下就是代码,应该都可以看懂,这里就不多说了 package com.example.admin.myutilsborder;import android ...

  9. WPF 动态生成DataGrid及动态绑定解决方案

    一.场景 有过WPF项目经验的朋友可能都知道,如果一个DataGrid要绑定静态的数据是非常的简单的(所谓静态是指绑定的数据源的类型是静态的),如下图所示,想要显示产品数据,只需绑定到一个产品列表即可 ...

  10. warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]

    struct test{int a=1111111; }test; vincentdeMacBook-Air:datasturte vincent$ g++ struct.cpp -o structp ...