Redis的数据类型 - String字符串类型

SET设置key对应的值为value

  语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]  #一个键最多存储512MB,如果key存在,同名进行覆盖#

    EX: seconds:设置键的key的过期时间SET key value EX seconds -- SETEX

    PX: milliseconds:以毫秒的形式设置过期时间SET key value PX milliseconds -- PSETEX

    NX: 只有键不存在的时候才可以设置成功SET key value NX--SETNX

    XX: 只有key已经存在的时候才可以设置

  SET test1 ‘this is a test1‘ EX 100  #100秒后过期#

  SET test2 ‘this is a test2‘ PX 20000  #20000毫秒后过期#

  SET test3 ‘this is a test3‘ NX  #设置成功#

  SET test3 ‘this is a test33‘ NX  #设置失败,test3已经存在#

  SET test4 ‘this is a test4‘ XX  #设置失败,test4不存在#

  SET test5 ‘this is a test5‘ EX 100 NX  

  SET test6 ‘this is a test6‘ EX 100 PX 300000 NX

  SET testStr1 ‘this is a test‘

GET:根据key找到对应的值

  语法:GET key

    GET test1  #如果key不存在,返回nil,如果key不是字符串,会报错#

GETRANGE返回字符串中一部分

  语法:GETRANGE key start end  #不支持从右向左截取#

    GETRANGE test2 0 4  #返回结果为 ‘this‘ #

    GETRANGE test2 0 -3  #从第一个到倒数第三个,返回结果为 ‘this is a te‘ #

    GETRANGE test2 -4 -2  #从第一个到倒数第三个,返回结果为 ‘est‘ #

    GETRANGE test2 0 1000  #test2里一共就15个字符,所以返回值只有15个字符 ‘this is a test2‘ #

GETSET设置指定key的值,并且返回旧的值

  语法:GETSET key value

    SET test3 ‘tom‘

    GET test

    GETSET test ‘jerry‘  #当key不存在返回nil,如果key不是字符串,会报错#

MSET一次设置多个键值对

  语法:MSET key value [key value...]

    MSET test4 ‘tom‘ test5 ‘jerry‘ test6 ‘tom - jerry‘

MGET:一次得到多个键值

  语法:MGET key key

    MGET test4 test5 test6

    MGET test4 test5 test6 test7  #返回值为 ‘tom‘ ‘jerry‘ ‘tom - jerry‘ ‘null‘,如果键不存在,则对应的键值会输出null#

STRLEN获取key的字符串长度

  语法:STRLEN key

    STRLEN test5  #返回值为5,对于不存在key获取其长度返回的0#

SETRANGE:相当于字符串替换的效果

  语法:SETRANGE key start value  #如果设置的key原来的字符串长度要比偏移量小,就会以零字节(\x00)来填充#

    SET test8 ‘hello tom‘

    SETRANGE test8 6 ‘jerry‘

  对不存在的key使用SETRANGE

    EXISTS test9  #返回(integer) 0 ,先用EXISTS来检测一下test9是否存在,为0表示不存在#

    SETRANGE test9 5 ‘tom‘  #返回 ‘\x00\x00\x00\x00\x00tom‘,这里不存在的地方用了5个零字节来代替#

SETNX:只有key不存在才能设置成功

  语法:SETNX key value

    EXISTS test10  #返回(integer) 0 #

    SETNX test10 ‘tom‘

    GET test10  #返回 ‘tom‘ #

SETEX:设置key并且设置其过期时间

  语法:SETEX key seconds value

    SETEX test11 60 ‘this is a test11‘  

    #SETEX是原子性操作,相当于执行了SET key value,又对这个key设置了过期时间EXPIRE key seconds#

MSETNX:一次设置多个key-value对,只有所有的key都不存在的时候才会成功

  语法:MSETNX key value [key value]

    MSETNX test13 ‘a‘ test14 ‘b‘ test15 ‘c‘  # ‘test13‘ ‘test14‘ ‘test15‘ 都不存在,设置成功返回 1 #

    MSETNX test15 ‘aa‘ test16 ‘bb‘ test17 ‘cc‘  #因为 ‘test15‘ 已经存在了,所以全部设置失败,返回 0 #

PSETEX:以毫秒为单位设置key的生存周期

  语法:PSETEX key milliseconds value

    PSETEX test16 20000 ‘hello world‘

    PTTL test16  #返回生命周期#

INCR:对key中存储的数字进行递增操作

  语法:INCR key

    SET count 1

    INCR count  #key如果不存在,则会先初始化为0,在进行INCR操作#

    INCR test1  #如果key存储的不是数字,会报错#

 

INCRBY:将key中存储的数字加上指定增量

  语法:INCRBY key INCREMENT

    SET count2 10

    INCRBY count2 5  #返回15#

    INCRBY count2 1.2  #这里增加的数不可以是小数,如果是小数会报错#

INCRBYFLOAT:给key中存储的数字加上指定的浮点数

  语法:INCRBYFLOAT key increment

    SET count3 1

    INCRBYFLOAT count3 1.2  #返回4.2#

DECR:将key中存储的数字进行递减操作

  语法:DECR key

    DECR count3  #返回3.2#

DECRBY:将key中存储的数值减去指定的值

  语法:DECRBY key decrement

    DECRBY counter2 3  #返回12,这里减法的操作没有float型,无法减小数#

APPEND:通过APPEND将值追加到字符串的末尾

  语法:APPEND key value

    APPEND test2 ‘edu‘

    APPEND noExistsStr ‘this is a test‘  #如果key不存在,则相当于执行的SET操作#

时间: 2025-01-10 12:35:00

Redis的数据类型 - String字符串类型的相关文章

Redis源码解析(三):redis之数据类型String

sds(简单动态字符串)是redis底层的字符串表示,它具有字符串对象化和替代char*的作用.数据库中的值类型包括字符串,哈希表,列表,集合和有序集合,但是键类型却总是字符串. typedef char *sds; struct sdshdr { // buf 已占用长度 int len; // buf 剩余可用长度 int free; // 实际保存字符串数据的地方 char buf[]; }; redis构建了自己的类型系统,所有的键.值.参数都是有类型的,在redis中用redisObj

数据类型内置方法之数据类型与字符串类型

数据类型内置方法 数字类型内置方法 整型 1.用途:年龄.身份证号码.手机号... 2.定义方式: age1 = 18 age2 = int(18) print(age1) print(id(age1)) print(type(age1)) print(type(age2)) 18 1723559936 <class 'int'> <class 'int'> 3.常用操作和内置方法:+ - * / // ** % :无内置方法 4.存一个值or多个值:一个值 5.有序or无序(有索

Redis 的数据类型 - Hash 对象类型

#Hash更容易存储对象,比如在设置用户姓名,年龄,邮箱等属性时,用string需要分别来进行设置存储,通过Hash就可以把属性放到对象中,然后再存储对象,因此相对于string类型,Hash类型存储对象可以占用更少的字节# 在配置文件中可以通过配置 hash-max-ziplist-entries 512 #存储值得最大字节512字节# hash-max-ziplist-value 64 #字段数目,默认64# HSET:将 Hash 表 key 中域 field 设置成指定的 value H

4.String字符串类型操作

String类型操作 1.set key value 设置key对应的值为string类型的value  2.mset key1 value1 … keyN valueN 一次设置多个key的值 3.mget key1 key2 … keyN 一次获取多个key的值  4.incr key 对key的值做加加操作,并返回新的值 5.incrby key integer 同incr,加指定值  注意:要求已有key的类型必须是整型数据 6.decr key 同上,但做的是减减操作 7.decrby

redis的数据类型String,及其命令

String类型简介 String类型存储的值类型包括:字符串,整数类型,浮点数类型,String类型的相关命令可以对字符串和整数型元素进行一定的处理. 原生命令介绍 1. SET key value:设置key的值为value:实例: SET string1 'testyyy'. 2.GET key :获取指定key的value值:实例:GET string1,返回testyyy. 3.GETRANGE key start end :返回指定key的value值的子串:实例:GETRANGE

MYSQL中的数值型数据类型与字符串类型

/* 数值型数据类型主要用来存储数字,包含的类型有: TINYINT.SMALLINT.MEDIUMINT. INT(INTEGER). BIGINT TINGINT占1个字节,SMALLINT占2个字节,MEDIUMINT占3个字节,INT占4个字节,BIGINT占8个字节 浮点类型:FLOAT.DOUBLE.定点类型:DECIMAL. 我们一般常用INT,和DOUBLE:*/ /* 字符串有如下几种类型: CHAR.VARCHAR.BINARY.VARBINARY.BLOB.TEXT.ENU

Redis系列 (二) String,List类型

一:String类型 string是二进制安全的(图片视频序列化存储,取出来还是可以用的)最多512M get key (拿出来)             set key(设key)             append key value(在原来基础上增加)             strlen key(长度)             setnx key value(存在时候不设置成功1,不成功0)            不成功                        成功      

Redis 的数据类型 - Zset 集合类型:有序集合

ZADD:将元素及其分数添加到集合中 语法:ZADD key courseScore member [courseScore member] ZADD courseScore 100 tom ZADD courseScore 99 jerry 88 mario 77 jack 66 lucy 55 chris ZADD courseScore 60 tom 67 apple 56 cherry #这里 tom 已经存在了,直接略过不执行,返回值为 2 # ZADD courseScore 12.

Redis学习之字符串类型详解

本文和大家分享的主要是Redis中字符串相关内容,一起来看看吧,希望对大家学习redis有所帮助. 字符串类型是最基本的数据类型,能够存储所有的字符串,包括二进制数据 json 化对象, 一个字符串类型的键的数据的最大容量是 512 MB 字符串类型是其他几种类型的基础,如列表类型是以列表的形式组织字符串,集合类型是以集合的形式组织字符串 获得符合规则的键名列表 keys pattern # ? 匹配一个字符 # *  匹配任意一个字符 # [] 匹配括号中的任意一个字符.可以使用 - 表示范围