Redis数据类型--字符串类型
夫陶公清風(fēng)千古,余又何人,敢稱庶幾
文章目錄
- 介紹
- 一、基本命令
- 1. 賦值與取值
- 2. 遞增數(shù)字
- 二、命令進(jìn)階
- 1. 增加指定的整數(shù)
- 2. 減少指定的整數(shù)
- 3. 增加指定浮點數(shù)
- 4. 向尾部追加值
- 5. 獲取字符串長度
- 6. 同時獲得/設(shè)置多個鍵值
- 7. 位操作
介紹
字符串類型是Redis中最基本的數(shù)據(jù)類型,他能存儲任何形式的字符串,包括二進(jìn)制數(shù)據(jù),一個字符串類型鍵允許存儲的數(shù)據(jù)的最大容量是512MB。
一、基本命令
| SET key value | 設(shè)置字段值 |
| GET key | 獲取字段值 |
| INCR key | 遞增數(shù)字 |
1. 賦值與取值
賦值: SET key value
取值:GET key
注:當(dāng)鍵不存在時會返回空(nil)
實踐:使用Java操作Redis數(shù)據(jù)庫:SET
導(dǎo)入maven依賴:
2. 遞增數(shù)字
INCR key
讓當(dāng)前鍵值遞增,并返回遞增后的值。
例:
127.0.0.1:6379> incr num (integer) 1 127.0.0.1:6379> incr num (integer) 2 127.0.0.1:6379> incr num (integer) 3如果鍵值不是整數(shù)時,會提示錯誤
127.0.0.1:6379> set n str OK 127.0.0.1:6379> incr n (error) ERR value is not an integer or out of range 127.0.0.1:6379> set n2 1 OK 127.0.0.1:6379> incr n2 (integer) 2 127.0.0.1:6379> incr n2 (integer) 3 127.0.0.1:6379> incr n2 (integer) 4 127.0.0.1:6379>從上可知n不是整數(shù),而是一個字符串,n2是一個整數(shù)
實踐:使用Java操作Redis數(shù)據(jù)庫:INCR
@Testpublic void testINCR(){Jedis jedis = new Jedis("127.0.0.1");Long num1 = jedis.incr("num");Long num2 = jedis.incr("num");Long num3 = jedis.incr("num");System.out.println("執(zhí)行三次后的值:"+num3);} 執(zhí)行三次后的值:3二、命令進(jìn)階
| INCRBY key increment | 增加指定的整數(shù) |
| DECR key | 減少整數(shù) |
| DECRBY key decrement | 減少指定的整數(shù) |
| INCRBYFLOAT key increment | 增加指定的浮點數(shù) |
| APPEND key value | 向尾部追加值 |
| STRLEN key | 獲取字符串長度 |
| MGET key [key …] | 同時設(shè)置多個鍵值 |
| MSET key value [key value …] | 同時獲取多個鍵的值 |
| GETBIT key offest | 獲取鍵指定的位號對應(yīng)的二進(jìn)制數(shù)(0或1) |
| SETBIT key offest value | 設(shè)置鍵指定位號的二進(jìn)制數(shù)(0或1) |
| BITCOUNT key [start][end] | 統(tǒng)計指定字節(jié)范圍 |
| BITOP operation destkey key [key …] | 對多個字符串類型鍵進(jìn)行位運算 |
1. 增加指定的整數(shù)
INCRBY key increment
INCRBY 命令和INCR 命令一樣,區(qū)別是前者可以通過increment參數(shù)指定一次增加的數(shù)值
例:
實踐:使用Java操作Redis數(shù)據(jù)庫:INCRBY
@Testpublic void testINCRBY(){Jedis jedis = new Jedis("127.0.0.1");jedis.incrBy("num",2);jedis.incrBy("num",2);Long num = jedis.incrBy("num", 2);System.out.println("執(zhí)行三次后的結(jié)果:"+num);} 執(zhí)行三次后的結(jié)果:62. 減少指定的整數(shù)
DECR key
DECR key increment
用法與INCR命令相同,只不過是讓鍵值遞減
例:
- DECR
實踐:使用Java操作Redis數(shù)據(jù)庫:DECR
@Testpublic void testDECR(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("num","10");System.out.println("初始值:"+jedis.get("num"));jedis.decr("num");jedis.decr("num");Long num = jedis.decr("num");System.out.println("遞減3次后的值:"+num);} 初始值:10 遞減3次后的值:7- DECRBY
實踐:使用Java操作Redis數(shù)據(jù)庫:DECRBY
@Testpublic void testDECRBY(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("num","10");System.out.println("初始值:"+jedis.get("num"));jedis.decrBy("num",3);jedis.decrBy("num",3);Long num = jedis.decrBy("num", 3);System.out.println("遞減3次后的值:"+num);} 初始值:10 遞減3次后的值:13. 增加指定浮點數(shù)
INCRBYFLOAT key increment
遞增一個雙精度浮點數(shù)
127.0.0.1:6379> incrbyfloat num 2.6 "2.6" 127.0.0.1:6379> incrbyfloat num 2.6 "5.2" 127.0.0.1:6379> incrbyfloat num 2.6 "7.800000000000001" 127.0.0.1:6379> incrbyfloat num 2.6 "10.4"實踐:使用Java操作Redis數(shù)據(jù)庫:INCRBYFLOAT
@Testpublic void testINCRBYFLOAT(){Jedis jedis = new Jedis("127.0.0.1");jedis.incrByFloat("num",2.6);jedis.incrByFloat("num",2.6);jedis.incrByFloat("num",2.6);Double num = jedis.incrByFloat("num", 2.6);System.out.println("遞增4次后的結(jié)果:"+num);} 遞增4次后的結(jié)果:10.44. 向尾部追加值
APPEND key value
該命令的作用是向一個鍵尾部追加值,如果該鍵不存在,則設(shè)置為默認(rèn)值:value,相當(dāng)于set key value,返回值是追加后字符串的總長度。
例:
注意:如果需要添加空格,需要對字符串添加雙引號
實踐:使用Java操作Redis數(shù)據(jù)庫:APPEND
@Testpublic void testAPPEND(){Jedis jedis = new Jedis("127.0.0.1");jedis.set("key","hello");System.out.println("追加前:"+jedis.get("key"));jedis.append("key","world");System.out.println("追加后:"+jedis.get("key"));} 追加前:hello 追加后:helloworld5. 獲取字符串長度
STRLEN key
STRLEN命令返回鍵的長度,如果鍵不存在則返回0.
例:
實踐:使用Java操作Redis數(shù)據(jù)庫:STRLEN
@Testpublic void testSTRLEN(){Jedis jedis = new Jedis("127.0.0.1");Set<String> keys = jedis.keys("*");System.out.println("緩存中所有的鍵:");System.out.println(keys);jedis.set("key","breez");String key = jedis.get("key");Long strlen = jedis.strlen("key");System.out.println(key+"的長度為:"+strlen);} 緩存中所有的鍵: [] breez的長度為:56. 同時獲得/設(shè)置多個鍵值
- MGET
MGET key [ key …]
- MSET
MSET key value [key value …]
注意:MGET/MSET 與GET/SET 相似,但是前者可以設(shè)置多個鍵的鍵值。
例:
127.0.0.1:6379> mset name breez age 22 sex male OK 127.0.0.1:6379> keys * 1) "sex" 2) "name" 3) "age" 127.0.0.1:6379> mget name age sex 1) "breez" 2) "22" 3) "male"實踐:使用Java操作Redis數(shù)據(jù)庫:MSETAndMGET
@Testpublic void testMSETAndMGET(){Jedis jedis = new Jedis("127.0.0.1");jedis.mset(new String[]{"name","breez","age","22","sex","male"});List<String> mget = jedis.mget(new String[]{"name","age","sex"});System.out.println(mget);} [breez, 22, male]7. 位操作
GETBIT key offset
SETBIT key offset value
BITCOUNT key [start][end]
BITOP operation destkey key [key …]
Redis中文官方網(wǎng)站:http://www.redis.cn
未完待續(xù),持續(xù)更新中...
總結(jié)
以上是生活随笔為你收集整理的Redis数据类型--字符串类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单查询(DQL)
- 下一篇: JUC 中断线程的3种方式