Redis操作String

来源:互联网 发布:股票交易模拟软件 编辑:程序博客网 时间:2024/05/21 17:32

Redis和Memcached最大的区别,Redis 除了支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据记录。Redis还支持对这些数据类型做更多的服务端操作,从而也能减少网路的IO次数与数据体积

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

Redis数据类型String

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

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

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为诺娃2手机声音小怎么办 华为平板锁屏密码忘记了怎么办 华为麦芒6手机按键摔坏了怎么办 定频空调加错了佛里昂怎么办 定频空调外机噪音大怎么办 老美的定频空调出现p0怎么办 华为揽阅m2青春版卡顿了怎么办 华为揽阅M2青春版发热卡顿怎么办 全民突击网速不给力经常掉线怎么办 华为手机微信视频黑屏了怎么办 相机拍照后找不到拍的照片怎么办 苹果手机下载软件不被信任怎么办 苹果x手机下载软件不受信任怎么办 华为畅享7plus主板坏了怎么办 华为手机手机主板坏了没备份怎么办 华为手机一年内主板坏了怎么办 华为手机保修期内主板坏了怎么办 华为手机外置sd卡满了怎么办 红米4充不进去电怎么办 苹果5s锁屏密码忘记了怎么办 华为手机桌面和锁屏自动一样怎么办 苹果手机没电了没带充电器怎么办 华为p8手机后摄像头模糊的怎么办 中兴手机充电的地方坏了怎么办? 小米手机与电脑蓝牙传输失败怎么办 捡个华为收机没有账号密码怎么办 华为手机p9激活码忘了怎么办 华为畅享7plus声音小怎么办 华为畅享7plus忘记密码怎么办 华为畅享8plus卡顿怎么办 华为畅享7plus卡机怎么办 华为畅享8plus图标字小怎么办 华为畅享6反应慢发热怎么办 华为畅享5S反应迟钝怎么办 华为畅玩5x玩王者荣耀卡怎么办 不小心把手机里的照片删了怎么办 u盘文件在手机上删了怎么办 荒野行动透视挂功能加载失败怎么办 白色t桖衫被奶茶弄脏了该怎么办 游戏文件不小心解压到c盘了怎么办 装系统时c盘0mb怎么办