017_Jedis的String数据类型
一. 下載Jedis包
1. Jedis包: https://mvnrepository.com/artifact/redis.clients/jedis
2. Jedis源碼: https://github.com/redis/jedis
二. Jedis字符串操作
1. 新建一個名為JedisString的Java項目, 拷入相關jar包, 并添加到build path
2. Jedis添加和獲取一個字符串類型的k-v
2.1. 代碼
2.2. 運行結果
3. Jedis添加和獲取多個字符串類型的k-v
3.1. 代碼
3.2. 運行結果
4. Jedis添加和獲取實體類對象k-v
4.1. 代碼
4.2. 運行結果
5. Jedis添加不存在的key
5.1. 代碼
5.2. 運行結果
6. Jedis添加字符串k-v, 同時設置過期時間
6.1. 代碼
6.2. 運行結果
7. Jedis替換字符串
7.1. 代碼
7.2. 運行結果
8. Jedis從指定位置替換字符串
8.1. 代碼
8.2. 運行結果
9. Jedis添加一個或多個key不存在的字符串
9.1. 代碼
9.2. 運行結果
10. Jedis添加字符串k-v, 同時設置過期時間
10.1. 代碼
10.2. 運行結果
11. Jedis對數字進行遞增、遞減、增加一個整形數字、減少一個整形數字和增加一個浮點值
11.1. 代碼
11.2. 運行結果
12. Jedis追加字符串
12.1. 代碼
12.2. 運行結果
13. Jedis返回key中字符串值的子字符
13.1. 代碼
13.2. 運行結果
14. 全部代碼
14.1. Student.java
package com.redis.string;import java.io.Serializable;public class Student implements Serializable {private static final long serialVersionUID = 1L;private Integer id; // 編號private String name; // 名字private Character sex; // 姓別private Float height; // 身高private Double weight; // 體重private Byte age; // 年齡private Long birthday; // 出生日期public Student() {}public Student(Integer id, String name, Character sex, Float height, Double weight, Byte age, Long birthday) {this.id = id;this.name = name;this.sex = sex;this.height = height;this.weight = weight;this.age = age;this.birthday = birthday;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Character getSex() {return sex;}public void setSex(Character sex) {this.sex = sex;}public Float getHeight() {return height;}public void setHeight(Float height) {this.height = height;}public Double getWeight() {return weight;}public void setWeight(Double weight) {this.weight = weight;}public Byte getAge() {return age;}public void setAge(Byte age) {this.age = age;}public Long getBirthday() {return birthday;}public void setBirthday(Long birthday) {this.birthday = birthday;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", height=" + height + ", weight=" + weight+ ", age=" + age + ", birthday=" + birthday + "]";}}14.2. ObjectByteUtil.java
package com.redis.string;import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream;public class ObjectByteUtil {public static byte[] objectToBytes(Object obj) {try {ByteArrayOutputStream baos = new ByteArrayOutputStream();ObjectOutputStream oos = new ObjectOutputStream(baos);oos.writeObject(obj);oos.flush();return baos.toByteArray();} catch (IOException e) {e.printStackTrace();}return null;}public static Object bytesToObject(byte[] bytes) {try {ByteArrayInputStream bais = new ByteArrayInputStream(bytes);ObjectInputStream ois = new ObjectInputStream(bais);return ois.readObject();} catch (ClassNotFoundException | IOException e) {e.printStackTrace();}return null;} }14.3. RedisString.java
package com.redis.string;import redis.clients.jedis.Jedis;/**** Jedis操作String數據類型 */ public class RedisString {public static void main(String[] args) {jedisSetex();}/*** jedis添加和獲取一個字符串類型的k-v*/public static void jedisSetGetOneKey() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");int idZs = 100001;String nameZs = "張三";char sexZs = '男';float heightZs = 178.5F;double weightZs = 80.75;byte ageZs = 22;long birthdayZs = 1111111111;System.out.println("添加idZs " + jedis.set("idZs", String.valueOf(idZs)));System.out.println("添加nameZs " + jedis.set("nameZs", String.valueOf(nameZs)));System.out.println("添加sexZs " + jedis.set("sexZs", String.valueOf(sexZs)));System.out.println("添加heightZs " + jedis.set("heightZs", String.valueOf(heightZs)));System.out.println("添加weightZs " + jedis.set("weightZs", String.valueOf(weightZs)));System.out.println("添加ageZs " + jedis.set("ageZs", String.valueOf(ageZs)));System.out.println("添加birthdayZs " + jedis.set("birthdayZs", String.valueOf(birthdayZs)));System.out.println("idZs = " + jedis.get("idZs"));System.out.println("nameZs = " + jedis.get("nameZs"));System.out.println("sexZs = " + jedis.get("sexZs"));System.out.println("heightZs = " + jedis.get("heightZs"));System.out.println("weightZs = " + jedis.get("weightZs"));System.out.println("ageZs = " + jedis.get("ageZs"));System.out.println("birthdayZs = " + jedis.get("birthdayZs"));jedis.close();}/*** jedis添加和獲取多個字符串類型的k-v*/public static void jedisSetGetMultiKey() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");int idLs = 100002;String nameLs = "李四";char sexLs = '男';float heightLs = 175.5F;double weightLs = 77.55;byte ageLs = 20;long birthdayLs = 2222222;System.out.println("添加 " + jedis.mset("idLs", String.valueOf(idLs), "nameLs", String.valueOf(nameLs), "sexLs", String.valueOf(sexLs), "heightLs", String.valueOf(heightLs), "weightLs", String.valueOf(weightLs), "ageLs", String.valueOf(ageLs), "birthdayLs", String.valueOf(birthdayLs)));System.out.println(jedis.mget("idLs", "nameLs", "sexLs", "heightLs", "weightLs", "ageLs", "birthdayLs"));jedis.close();}/*** jedis添加和獲取實體類對象k-v*/public static void jedisSetGetObject() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");Student student = new Student(100003, "王五", '男', 188.5F, 57.65D, (byte)18, 3333333333L);System.out.println("添加 " + jedis.set("student".getBytes(), ObjectByteUtil.objectToBytes(student)));Object obj = ObjectByteUtil.bytesToObject(jedis.get("student".getBytes()));System.out.println(obj.toString());jedis.close();}/*** jedis添加不存在的key*/public static void jedisSetnx() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");Long result = jedis.setnx("nameZl", "趙六");if(result == 1) {System.out.println("添加成功。");}else {System.out.println("添加失敗。");}jedis.close();}/*** jedis添加字符串k-v, 同時設置過期時間*/public static void jedisSetex() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("添加 nameXh " + jedis.setex("nameXh", 60, "小紅"));System.out.println("nameXh = " + jedis.get("nameXh"));try {Thread.sleep(70000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("nameXh = " + jedis.get("nameXh"));jedis.close();}/*** jedis替換字符串*/public static void jedisGetSet() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("nameXl = " + jedis.get("nameXl"));jedis.getSet("nameXl", "小蘭");System.out.println("nameXl = " + jedis.get("nameXl"));jedis.getSet("nameXl", "小藍");System.out.println("nameXl = " + jedis.get("nameXl"));jedis.close();}/*** jedis從指定位置替換字符串*/public static void jedisGetrange() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("添加 nameXl " + jedis.set("nameXl", "小綠-烏拉烏拉")); // 在utf-8編碼中, 一個漢字3個字節System.out.println("nameXl = " + jedis.get("nameXl"));System.out.println("字符串字節數" + jedis.setrange("nameXl", 6, "-哼哈哼哈")); // 從0開始計數, 從第6個字節的位置開始替換System.out.println("nameXl = " + jedis.get("nameXl"));System.out.println("字符串字節數" + jedis.setrange("nameXl", 22, "-哼哈哼哈"));System.out.println("nameXl = " + jedis.get("nameXl"));jedis.close();}/*** jedis添加一個或多個key不存在的字符串*/public static void jedisMsetnx() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");long result = jedis.msetnx("nameXh", "小黃", "ageXh", "12");if(result == 1) {System.out.println("添加成功。");}else {System.out.println("添加失敗。");}jedis.close();}/*** jedis添加字符串k-v, 同時設置過期時間*/public static void jedisPsetex() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");System.out.println("添加nameXz " + jedis.psetex("nameXz", 60000, "小紫"));System.out.println("nameXz = " + jedis.get("nameXz"));try {Thread.sleep(70000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("nameXz = " + jedis.get("nameXz"));jedis.close();}/*** jedis對數字進行遞增、遞減、增加一個整形數字、減少一個整形數字和增加一個浮點值*/public static void jedisIncrDecr() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");jedis.set("ageZsf", "149");System.out.println("ageZsf = " + jedis.get("ageZsf"));System.out.println("ageZsf = " + jedis.incr("ageZsf"));System.out.println("ageZsf = " + jedis.incrBy("ageZsf", 9));System.out.println("ageZsf = " + jedis.decr("ageZsf"));System.out.println("ageZsf = " + jedis.decrBy("ageZsf", 9));System.out.println("ageZsf = " + jedis.incrByFloat("ageZsf", 17.5));jedis.close();}/*** jedis追加字符串*/public static void jedisAppend() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");jedis.set("nameZwj", "張無忌");System.out.println("result = " + jedis.append("nameZwj", ",張翠山"));System.out.println("nameZwj = " + jedis.get("nameZwj"));System.out.println("nameZwj字符串長度 = " + jedis.strlen("nameZwj"));jedis.close();}/*** jedis返回key中字符串值的子字符*/public static void jedisRange() {Jedis jedis = new Jedis("192.168.25.138", 6379);jedis.auth("lyw123456");jedis.set("nameHqg", "六指神丐-洪七公");// 截取第12和13字節處的字符System.out.println("result = " + jedis.getrange("nameHqg", 12, 13));// 截取第12~30字節處的字符, 30字節超出了字符串的字節數, 就是截取12字節后的所有字符System.out.println("result = " + jedis.getrange("nameHqg", 12, 30));// 如果一個位置為負數, 就是用總字節數加上負數, 22-3=19~30字節處的字符System.out.println("result = " + jedis.getrange("nameHqg", -3, 30));// 如果一個位置為負數, 就是用總字節數加上負數, 22-25=-3, 還是負數直接取0~2System.out.println("result = " + jedis.getrange("nameHqg", -25, 2));jedis.close();} }?
總結
以上是生活随笔為你收集整理的017_Jedis的String数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 004_Redis的String数据类型
- 下一篇: 005_Redis的Hash数据类型