Redis的数据类型之String

Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set。

Redis数据类型String
string类型在redis中是最常见的类型,value存储最大数据量为512M,可以存放json数据,图像数据等等。

下面跟着敲Redis命令操作String类型数据的代码吧。

redis数据写命令Set,相当于数据插入

redis 127.0.0.1:6379> set name zlh   --返回值: ok,说明插入成功。如果当前name存在值则覆盖替换原有的value值。

redis数据读命令Get,获取数据

redis 127.0.0.1:6379> get name   --返回值: "zlh" ,如果当前key没有value值,则返回null

redis数据追加命令Append,追加数据

redis 127.0.0.1:6379> append name ‘ is my friend‘   --返回值:"zlh is my friend"  ,如果当前key的value有值则附加到原有string后面,如果没有则写入。

redis数据删除

redis 127.0.0.1:6379>del name

redis数据读写操作命令GetSet,获取原有value值的同时写入新的value值

1、redis 127.0.0.1:6379>getset name zlh   --返回值:"zlh is my friend",这里返回的是原有name的value值,同时又给name的value设置新值zlh。此时name的值真实值为zlh

2、redis 127.0.0.1:6379>get name  --返回值:zlh ,因为上面getset给name的value设置值为zlh。

redis数据加法计算命令incr,incrby,数据加法运算,incr为+1内置运算,incrby为+n自设n运算

1、redis 127.0.0.1:6379>incr name   ---返回值:“数据不是整型或数据超出64位有符号整形数据范围” ,由于原有name的value为"zlh",所以不能转换为整型,故报异常。

2、redis 127.0.0.1:6379>incr age   ----返回值:1,由于不存在age的key与value值,但是默认age为key值为0进行+1运算。

3、redis 127.0.0.1:6379>incr age   ---返回值:2,由于上一行代码给age赋值为1,这里incr命令进行+1运算,故返回值为2。

4、redis 127.0.0.1:6379>incrby age 10   ---返回值:12 ,因为原有age是2,这里+10故为12。

redis数据减法计算命令decr,decrby, 数据减法运算,decr为-1内置运算,decrby为减n自设n运算

1、redis 127.0.0.1:6379>decr name   --返回值:“数据不是整型或数据超出64位有符号整形数据范围” ,由于原有name的value为"zlh",所以不能转换为整型,故报异常。

2、redis 127.0.0.1:6379>decr age  --返回自:11,因为原有age的value值为12,这里decr是自减1的意思,故为11。

3、redis 127.0.0.1:6379>decrby age 10   --返回值:1,因为原有age为11,这里-10,故为1。

redis获取string长度的命令strlen

redis 127.0.0.1:6379>strlen name   --返回值:3,因为name的value值为zlh,故长度为3,如果该key或者value不存在,则返回0。

redis设置value值并设置过期时间命令setex(单位秒)

redis 127.0.0.1:6379>setex sex 20 male   ---返回值:ok,设置key为sex的value值为male,缓存的过期时间为20s。

redis 127.0.0.1:6379>ddl sex   ---返回值: 剩余过期时间,0为已过期,-1为永不过期。

redis 127.0.0.1:6379>get sex   ---返回值:male,说明此时为没有过期,当已经过期此处返回数据为null。

redis赋值判断原值是否存在,存在不赋值,返回0;不存在才赋值,返回1;命令setnx

redis 127.0.0.1:6379>setnx name Tom  ---返回值:0,因为name的原有value为zlh,存在值则不赋值。

redis 127.0.0.1:6379>gete name  ---返回值:zlh,因为有值,故上面赋值为tom失败,返回0。

redis 127.0.0.1:6379>setnx phone 18501733702   ---返回值:1,赋值成功,因为原来不存在phone的key与value。

redis 127.0.0.1:6379>get phone   ---返回值:18501733702,说明上面的setnx赋值成功。

redis字符串替换赋值,从指定位置开始替换,命令setrange

redis 127.0.0.1:6379>setrange phone 9 123   --返回值:12,12为字符串长度,11位号码变成了12位。因为从第9位开始替换,替换到原有字符串的最后一位还没有替换完毕,所以在最后面添加啦一位设置为3。

redis 127.0.0.1:6379>get phone   ---返回值为:185017337123.

redis 127.0.0.1:6379>set phone  1    ---这里为了下面说下setrange的其他特性,把电话设置为1.

redis 127.0.0.1:6379>setrange phone 3 aaa   ---返回值为:6,因为原有phone的value值为1,不到三位,用0*00替换2位,所以要添加2为才能替换第三位后面的值为aaa。

redis 127.0.0.1:6379>get phone  ---返回值:1\*00\*00aaa。理解下上面的操作就知道这里为什么是这样的返回值了。

redis截取字符串,从下标为n开始截取到n或n+1,类似c#中的substring,命令getrange

redis 127.0.0.1:6379>set phone 18501733701    ----方便下面操作

redis 127.0.0.1:6379>getrange phone  1 5   ---返回值:85017,因为getrange是从下标为1开始截取截取到下标为5,这里包含下标为5的值。

redis 127.0.0.1:6379>getrange phone  0 0  ---返回值:1,从下标为0开始截取,截取到下标为0,包含下标为0。故返回值为1。

redis 127.0.0.1:6379>getrange phone 10 13   --返回值为:1,此号码下标直到10的11位号码,从10开始截取,截到第13位,后2位不存在忽略,只返回第10位。故返回干净的1。

redis批量操作修改及读取string数据,命令mget,批量读取,命令mset,批量赋值,命令msetnx,带事务性的赋值,发现有一个key已经存在,所有事务回归,不做赋值处理操作

redis 127.0.0.1:6379>mset name zlh age 30   ---返回值:ok,这里设置了 key为name和age的value分别为zlh,30

redis 127.0.0.1:6379>mget name zlh      ---返回值:1>zlh  2>30 。

redis 127.0.0.1:6379>msetnx name Jim address China ---返回值为:0,没有做任何修改,因为key为那么已存在。

redis 127.0.0.1:6379>mget name address   ---返回值:1>zlh  2>null

redis 127.0.0.1:6379>msetnx address China,hobbies sports  --返回值为:1,插入成功

redis 127.0.0.1:6379>mget address hobbies   ---返回值:1>China   2>sports
时间: 2024-08-07 00:16:58

Redis的数据类型之String的相关文章

Redis基本数据类型以及String(一)

前言:     Redis也有自己的数据类型,包含string,list,hash,set,sorted set.下面就对每种数据类型原理以及操作做一个详细的介绍.     Redis是面向编程的语言,除了字符串,其他类型怎么表示呢?     Redis中定义了一个对象的结构体: /* * Redis 对象 */ typedef struct redisObject { // 类型 unsigned type:4; // 不使用(对齐位) unsigned notused:2; // 编码方式

Nosql技术--redis系列--redis的数据类型 及相应的命令--String类型

1:redis的官方网站地址是:http://www.redis.com 在线redis命令运行测试地址:http://try.redis.io/ 2:redis的数据类型有5种:String .Hash .Set.List.SortedSet String 类型 1)String是二进制安全的 (1):set 表示设置key和value eg :> set name lusy ok >get name lusy 注意:redis中同一个name对应的value是一样的 (2)setnx:设置

Redis(六)-数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个键最大能存储512MB. 实例 redis

Redis各个数据类型的使用场景[整理]

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis列表命令 参考:http://www.redis.net.cn/tutorial/3501.html 使用场景 String String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字. 常规key-value缓存应用: 常规计数:微博数,粉丝数等. hash Redis hash是一个stri

redis的数据类型

redis有string,hash,list,sets.zsets几种数据类型 1.string数据类型 可包含任何数据,是二进制安全的,比如图片或者序列化的对象set key valueset name hkset age 20get name 得到"hk" setnx key value 如果key不存在就设置key的值为value 如果要设置的key已存在 则返回0 设置失败返回1 则表示设置成功setnx name hk1 因为name已近有值了 会返回0 而name的值仍为h

Redis基本数据类型

-------------------Redis基本数据类型------------------- 1.String 字符串 1.概念 1.String 是redis最基本的类型,value 不仅可以是 String,也可以是数字:使用 Strings 类型,可以完全实现目前 Memcached 的功能,并且效率更高.还可以享受 Redis 的定时持久化(可以选择 RDB 模式或者 AOF 模式):string类型是二进制安全的.意思是redis的string可以包含任何数据,比如jpg图片或者

Redis常用数据类型介绍、使用场景及其操作命令

Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字典) 4.Set(集合) 5.Sorted Set(有序集合) 下面就分别介绍这五种数据类型及其相应的操作命令. 1. String(字符串) String是简单的 key-value 键值对,value 不仅可以是 String,也可以是数字.String在redis内部存储默认就是一个字符串,被

Redis hash数据类型操作命令

Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均) hash特别适合用于存储对象,相较于将对象的每个字段存成单个string类型.将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存储整个对象. 下面是hash数据类型的操作命令 1.hset:设置hash field为指定值,如果key不存在,则先创建 127.0.0.1:6379> hset user name zeng  //user为表明,name为字段名 ze

redis的数据类型及设置方法

1. redis支持的五种数据类型字符串(string).Hash(哈希).list(列表).set(集合).zset(有序集合): 2. string是redis最基本的类型,一个键最大可以支持存储512MB: set name "lanyulei" del name //设置一个key是name,对应的value是兰玉磊的字符串 get name //结果集为"lanyulei" 3. redis hash是一个string类型的field和value的映射表,