博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis的数据类型之String
阅读量:6438 次
发布时间:2019-06-23

本文共 3551 字,大约阅读时间需要 11 分钟。

Redis主要支持的数据类型有5种:String ,Hash ,List ,Set ,和 Sorted Set。Redis数据类型Stringstring类型在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值,则返回nullredis数据追加命令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 nameredis数据读写操作命令GetSet,获取原有value值的同时写入新的value值1、redis 127.0.0.1:6379>getset name zlh   --返回值:"zlh is my friend",这里返回的是原有name的value值,同时又给name的value设置新值zlh。 此时name的值真实值为zlh2、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长度的命令strlenredis 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;命令setnxredis 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字符串替换赋值,从指定位置开始替换,命令setrangeredis 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,命令getrangeredis 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,30redis 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>nullredis 127.0.0.1:6379>msetnx address China,hobbies sports  --返回值为:1,插入成功redis 127.0.0.1:6379>mget address hobbies   ---返回值:1>China   2>sports

 

转载地址:http://ggzwo.baihongyu.com/

你可能感兴趣的文章
seafile服务器配置
查看>>
HyperLedger Fabric 1.2 区块链应用场景(3.1)
查看>>
也谈谈初创公司的技术团队建设
查看>>
阿里云 APM 解决方案地图
查看>>
中国HBase技术社区第一届MeetUp-HBase2.0研讨圆桌会
查看>>
学渣的模块化之路——50行代码带你手写一个common.js规范
查看>>
python——变量
查看>>
subline上装node.js插件
查看>>
python字符串操作实方法大合集
查看>>
Linux学习(十一):不可忽略的Linux支持的文件系统
查看>>
[转]VC++中操作XML(MFC、SDK)
查看>>
WiFi连接风险造成个人信息外泄 网络安全需加强
查看>>
2017(中国)商博会系列介绍之智能生活展
查看>>
eclipse link方式安装 sts(Spring Tool Suite)
查看>>
数据结构思维 第三章 `ArrayList`
查看>>
CentOS6、7编译安装FFmpeg
查看>>
Android项目实战(二十九):酒店预定日期选择
查看>>
PHP IDE phpstorm 常用快捷键
查看>>
蓝牙的未来怎样发展?
查看>>
AI、新材料、5G、智慧城市,未来的社会场景在高交会提前上演
查看>>