日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Redis的数据类型之String

發(fā)布時(shí)間:2024/4/13 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis的数据类型之String 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Redis主要支持的數(shù)據(jù)類(lèi)型有5種:String ,Hash ,List ,Set ,和 Sorted Set。Redis數(shù)據(jù)類(lèi)型String string類(lèi)型在redis中是最常見(jiàn)的類(lèi)型,value存儲(chǔ)最大數(shù)據(jù)量為512M,可以存放json數(shù)據(jù),圖像數(shù)據(jù)等等。下面跟著敲Redis命令操作String類(lèi)型數(shù)據(jù)的代碼吧。redis數(shù)據(jù)寫(xiě)命令Set,相當(dāng)于數(shù)據(jù)插入redis 127.0.0.1:6379> set name zlh --返回值: ok,說(shuō)明插入成功。如果當(dāng)前name存在值則覆蓋替換原有的value值。redis數(shù)據(jù)讀命令Get,獲取數(shù)據(jù)redis 127.0.0.1:6379> get name --返回值: "zlh" ,如果當(dāng)前key沒(méi)有value值,則返回nullredis數(shù)據(jù)追加命令A(yù)ppend,追加數(shù)據(jù)redis 127.0.0.1:6379> append name ' is my friend' --返回值:"zlh is my friend" ,如果當(dāng)前key的value有值則附加到原有string后面,如果沒(méi)有則寫(xiě)入。redis數(shù)據(jù)刪除redis 127.0.0.1:6379>del nameredis數(shù)據(jù)讀寫(xiě)操作命令GetSet,獲取原有value值的同時(shí)寫(xiě)入新的value值1、redis 127.0.0.1:6379>getset name zlh --返回值:"zlh is my friend",這里返回的是原有name的value值,同時(shí)又給name的value設(shè)置新值z(mì)lh。
此時(shí)name的值真實(shí)值為zlh
2、redis 127.0.0.1:6379>get name --返回值:zlh ,因?yàn)樯厦鎔etset給name的value設(shè)置值為zlh。redis數(shù)據(jù)加法計(jì)算命令incr,incrby,數(shù)據(jù)加法運(yùn)算,incr為+1內(nèi)置運(yùn)算,incrby為+n自設(shè)n運(yùn)算1、redis 127.0.0.1:6379>incr name ---返回值:“數(shù)據(jù)不是整型或數(shù)據(jù)超出64位有符號(hào)整形數(shù)據(jù)范圍” ,由于原有name的value為"zlh",所以不能轉(zhuǎn)換為整型,故報(bào)異常。2、redis 127.0.0.1:6379>incr age ----返回值:1,由于不存在age的key與value值,但是默認(rèn)age為key值為0進(jìn)行+1運(yùn)算。3、redis 127.0.0.1:6379>incr age ---返回值:2,由于上一行代碼給age賦值為1,這里incr命令進(jìn)行+1運(yùn)算,故返回值為2。4、redis 127.0.0.1:6379>incrby age 10 ---返回值:12 ,因?yàn)樵衋ge是2,這里+10故為12。redis數(shù)據(jù)減法計(jì)算命令decr,decrby, 數(shù)據(jù)減法運(yùn)算,decr為-1內(nèi)置運(yùn)算,decrby為減n自設(shè)n運(yùn)算1、redis 127.0.0.1:6379>decr name --返回值:“數(shù)據(jù)不是整型或數(shù)據(jù)超出64位有符號(hào)整形數(shù)據(jù)范圍” ,由于原有name的value為"zlh",所以不能轉(zhuǎn)換為整型,故報(bào)異常。2、redis 127.0.0.1:6379>decr age --返回自:11,因?yàn)樵衋ge的value值為12,這里decr是自減1的意思,故為11。3、redis 127.0.0.1:6379>decrby age 10 --返回值:1,因?yàn)樵衋ge為11,這里-10,故為1。redis獲取string長(zhǎng)度的命令strlenredis 127.0.0.1:6379>strlen name --返回值:3,因?yàn)閚ame的value值為zlh,故長(zhǎng)度為3,如果該key或者value不存在,則返回0。redis設(shè)置value值并設(shè)置過(guò)期時(shí)間命令setex(單位秒)redis 127.0.0.1:6379>setex sex 20 male ---返回值:ok,設(shè)置key為sex的value值為male,緩存的過(guò)期時(shí)間為20s。redis 127.0.0.1:6379>ddl sex ---返回值: 剩余過(guò)期時(shí)間,0為已過(guò)期,-1為永不過(guò)期。redis 127.0.0.1:6379>get sex ---返回值:male,說(shuō)明此時(shí)為沒(méi)有過(guò)期,當(dāng)已經(jīng)過(guò)期此處返回?cái)?shù)據(jù)為null。redis賦值判斷原值是否存在,存在不賦值,返回0;不存在才賦值,返回1;命令setnxredis 127.0.0.1:6379>setnx name Tom ---返回值:0,因?yàn)閚ame的原有value為zlh,存在值則不賦值。redis 127.0.0.1:6379>gete name ---返回值:zlh,因?yàn)橛兄?#xff0c;故上面賦值為tom失敗,返回0。redis 127.0.0.1:6379>setnx phone 18501733702 ---返回值:1,賦值成功,因?yàn)樵瓉?lái)不存在phone的key與value。redis 127.0.0.1:6379>get phone ---返回值:18501733702,說(shuō)明上面的setnx賦值成功。redis字符串替換賦值,從指定位置開(kāi)始替換,命令setrangeredis 127.0.0.1:6379>setrange phone 9 123 --返回值:12,12為字符串長(zhǎng)度,11位號(hào)碼變成了12位。因?yàn)閺牡?位開(kāi)始替換,替換到原有字符串的最后一位還沒(méi)有替換完畢,所以在最后面添加啦一位設(shè)置為3。redis 127.0.0.1:6379>get phone ---返回值為:185017337123.redis 127.0.0.1:6379>set phone 1 ---這里為了下面說(shuō)下setrange的其他特性,把電話設(shè)置為1.redis 127.0.0.1:6379>setrange phone 3 aaa ---返回值為:6,因?yàn)樵衟hone的value值為1,不到三位,用0*00替換2位,所以要添加2為才能替換第三位后面的值為aaa。redis 127.0.0.1:6379>get phone ---返回值:1\*00\*00aaa。理解下上面的操作就知道這里為什么是這樣的返回值了。redis截取字符串,從下標(biāo)為n開(kāi)始截取到n或n+1,類(lèi)似c#中的substring,命令getrangeredis 127.0.0.1:6379>set phone 18501733701 ----方便下面操作redis 127.0.0.1:6379>getrange phone 1 5 ---返回值:85017,因?yàn)間etrange是從下標(biāo)為1開(kāi)始截取截取到下標(biāo)為5,這里包含下標(biāo)為5的值。redis 127.0.0.1:6379>getrange phone 0 0 ---返回值:1,從下標(biāo)為0開(kāi)始截取,截取到下標(biāo)為0,包含下標(biāo)為0。故返回值為1。redis 127.0.0.1:6379>getrange phone 10 13 --返回值為:1,此號(hào)碼下標(biāo)直到10的11位號(hào)碼,從10開(kāi)始截取,截到第13位,后2位不存在忽略,只返回第10位。
故返回干凈的1。redis批量操作修改及讀取string數(shù)據(jù),命令mget,批量讀取,命令mset,批量賦值,命令msetnx,帶事務(wù)性的賦值,發(fā)現(xiàn)有一個(gè)key已經(jīng)存在,所有事務(wù)回歸,不做賦值處理操作redis
127.0.0.1:6379>mset name zlh age 30 ---返回值:ok,這里設(shè)置了 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,沒(méi)有做任何修改,因?yàn)閗ey為那么已存在。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

?

總結(jié)

以上是生活随笔為你收集整理的Redis的数据类型之String的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。