java对redis的基本操作
基本功能测试
1、程序基本结构
2、主要类
1)功能类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | package com.redis; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; import redis.clients.jedis.SortingParams; public class RedisClient { private Jedis jedis; //非切片额客户端连接 private JedisPool jedisPool; //非切片连接池 private ShardedJedis shardedJedis; //切片额客户端连接 private ShardedJedisPool shardedJedisPool; //切片连接池 public RedisClient() { initialPool(); initialShardedPool(); shardedJedis = shardedJedisPool.getResource(); jedis = jedisPool.getResource(); } /** * 初始化非切片池 */ private void initialPool() { // 池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive( 20 ); config.setMaxIdle( 5 ); config.setMaxWait(1000l); config.setTestOnBorrow( false ); jedisPool = new JedisPool(config, "127.0.0.1" , 6379 ); } /** * 初始化切片池 */ private void initialShardedPool() { // 池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive( 20 ); config.setMaxIdle( 5 ); config.setMaxWait(1000l); config.setTestOnBorrow( false ); // slave链接 List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); shards.add( new JedisShardInfo( "127.0.0.1" , 6379 , "master" )); // 构造池 shardedJedisPool = new ShardedJedisPool(config, shards); } public void show() { KeyOperate(); StringOperate(); ListOperate(); SetOperate(); SortedSetOperate(); HashOperate(); jedisPool.returnResource(jedis); shardedJedisPool.returnResource(shardedJedis); } private void KeyOperate() { 。。。 } private void StringOperate() { 。。。 } private void ListOperate() { 。。。 } private void SetOperate() { 。。。 } private void SortedSetOperate() { 。。。 } private void HashOperate() { 。。。 } } |
2)测试类
1 2 3 4 5 6 7 8 9 10 | package com.redis; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub new RedisClient().show(); } } |
3、各个功能函数
1)key功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | private void KeyOperate() { System.out.println( "======================key==========================" ); // 清空数据 System.out.println( "清空库中所有数据:" +jedis.flushDB()); // 判断key否存在 System.out.println( "判断key999键是否存在:" +shardedJedis.exists( "key999" )); System.out.println( "新增key001,value001键值对:" +shardedJedis.set( "key001" , "value001" )); System.out.println( "判断key001是否存在:" +shardedJedis.exists( "key001" )); // 输出系统中所有的key System.out.println( "新增key002,value002键值对:" +shardedJedis.set( "key002" , "value002" )); System.out.println( "系统中所有键如下:" ); Set<String> keys = jedis.keys( "*" ); Iterator<String> it=keys.iterator() ; while (it.hasNext()){ String key = it.next(); System.out.println(key); } // 删除某个key,若key不存在,则忽略该命令。 System.out.println( "系统中删除key002: " +jedis.del( "key002" )); System.out.println( "判断key002是否存在:" +shardedJedis.exists( "key002" )); // 设置 key001的过期时间 System.out.println( "设置 key001的过期时间为5秒:" +jedis.expire( "key001" , 5 )); try { Thread.sleep( 2000 ); } catch (InterruptedException e){ } // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1 System.out.println( "查看key001的剩余生存时间:" +jedis.ttl( "key001" )); // 移除某个key的生存时间 System.out.println( "移除key001的生存时间:" +jedis.persist( "key001" )); System.out.println( "查看key001的剩余生存时间:" +jedis.ttl( "key001" )); // 查看key所储存的值的类型 System.out.println( "查看key所储存的值的类型:" +jedis.type( "key001" )); /* * 一些其他方法:1、修改键名:jedis.rename("key6", "key0"); * 2、将当前db的key移动到给定的db当中:jedis.move("foo", 1) */ } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ======================key========================== 清空库中所有数据:OK 判断key999键是否存在: false 新增key001,value001键值对:OK 判断key001是否存在: true 新增key002,value002键值对:OK 系统中所有键如下: key002 key001 系统中删除key002: 1 判断key002是否存在: false 设置 key001的过期时间为 5 秒: 1 查看key001的剩余生存时间: 3 移除key001的生存时间: 1 查看key001的剩余生存时间:- 1 查看key所储存的值的类型:string |
2)String功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | private void StringOperate() { System.out.println( "======================String_1==========================" ); // 清空数据 System.out.println( "清空库中所有数据:" +jedis.flushDB()); System.out.println( "=============增=============" ); jedis.set( "key001" , "value001" ); jedis.set( "key002" , "value002" ); jedis.set( "key003" , "value003" ); System.out.println( "已新增的3个键值对如下:" ); System.out.println(jedis.get( "key001" )); System.out.println(jedis.get( "key002" )); System.out.println(jedis.get( "key003" )); System.out.println( "=============删=============" ); System.out.println( "删除key003键值对:" +jedis.del( "key003" )); System.out.println( "获取key003键对应的值:" +jedis.get( "key003" )); System.out.println( "=============改=============" ); //1、直接覆盖原来的数据 System.out.println( "直接覆盖key001原来的数据:" +jedis.set( "key001" , "value001-update" )); System.out.println( "获取key001对应的新值:" +jedis.get( "key001" )); //2、直接覆盖原来的数据 System.out.println( "在key002原来值后面追加:" +jedis.append( "key002" , "+appendString" )); System.out.println( "获取key002对应的新值" +jedis.get( "key002" )); System.out.println( "=============增,删,查(多个)=============" ); /** * mset,mget同时新增,修改,查询多个键值对 * 等价于: * jedis.set("name","ssss"); * jedis.set("jarorwar","xxxx"); */ System.out.println( "一次性新增key201,key202,key203,key204及其对应值:" +jedis.mset( "key201" , "value201" , "key202" , "value202" , "key203" , "value203" , "key204" , "value204" )); System.out.println( "一次性获取key201,key202,key203,key204各自对应的值:" + jedis.mget( "key201" , "key202" , "key203" , "key204" )); System.out.println( "一次性删除key201,key202:" +jedis.del( new String[]{ "key201" , "key202" })); System.out.println( "一次性获取key201,key202,key203,key204各自对应的值:" + jedis.mget( "key201" , "key202" , "key203" , "key204" )); System.out.println(); //jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法 System.out.println( "======================String_2==========================" ); // 清空数据 System.out.println( "清空库中所有数据:" +jedis.flushDB()); System.out.println( "=============新增键值对时防止覆盖原先值=============" ); System.out.println( "原先key301不存在时,新增key301:" +shardedJedis.setnx( "key301" , "value301" )); System.out.println( "原先key302不存在时,新增key302:" +shardedJedis.setnx( "key302" , "value302" )); System.out.println( "当key302存在时,尝试新增key302:" +shardedJedis.setnx( "key302" , "value302_new" )); System.out.println( "获取key301对应的值:" +shardedJedis.get( "key301" )); System.out.println( "获取key302对应的值:" +shardedJedis.get( "key302" )); System.out.println( "=============超过有效期键值对被删除=============" ); // 设置key的有效期,并存储数据 System.out.println( "新增key303,并指定过期时间为2秒" +shardedJedis.setex( "key303" , 2 , "key303-2second" )); System.out.println( "获取key303对应的值:" +shardedJedis.get( "key303" )); try { Thread.sleep( 3000 ); } catch (InterruptedException e){ } System.out.println( "3秒之后,获取key303对应的值:" +shardedJedis.get( "key303" )); System.out.println( "=============获取原值,更新为新值一步完成=============" ); System.out.println( "key302原值:" +shardedJedis.getSet( "key302" , "value302-after-getset" )); System.out.println( "key302新值:" +shardedJedis.get( "key302" )); System.out.println( "=============获取子串=============" ); System.out.println( "获取key302对应值中的子串:" +shardedJedis.getrange( "key302" , 5 , 7 )); } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | ======================String_1========================== 清空库中所有数据:OK =============增============= 已新增的 3 个键值对如下: value001 value002 value003 =============删============= 删除key003键值对: 1 获取key003键对应的值: null =============改============= 直接覆盖key001原来的数据:OK 获取key001对应的新值:value001-update 在key002原来值后面追加: 21 获取key002对应的新值value002+appendString =============增,删,查(多个)============= 一次性新增key201,key202,key203,key204及其对应值:OK 一次性获取key201,key202,key203,key204各自对应的值:[value201, value202, value203, value204] 一次性删除key201,key202: 2 一次性获取key201,key202,key203,key204各自对应的值:[ null , null , value203, value204] ======================String_2========================== 清空库中所有数据:OK =============新增键值对时防止覆盖原先值============= 原先key301不存在时,新增key301: 1 原先key302不存在时,新增key302: 1 当key302存在时,尝试新增key302: 0 获取key301对应的值:value301 获取key302对应的值:value302 =============超过有效期键值对被删除============= 新增key303,并指定过期时间为 2 秒OK 获取key303对应的值:key303-2second 3 秒之后,获取key303对应的值: null =============获取原值,更新为新值一步完成============= key302原值:value302 key302新值:value302-after-getset =============获取子串============= 获取key302对应值中的子串: 302 |
3)List功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | private void ListOperate() { System.out.println( "======================list==========================" ); // 清空数据 System.out.println( "清空库中所有数据:" +jedis.flushDB()); System.out.println( "=============增=============" ); shardedJedis.lpush( "stringlists" , "vector" ); shardedJedis.lpush( "stringlists" , "ArrayList" ); shardedJedis.lpush( "stringlists" , "vector" ); shardedJedis.lpush( "stringlists" , "vector" ); shardedJedis.lpush( "stringlists" , "LinkedList" ); shardedJedis.lpush( "stringlists" , "MapList" ); shardedJedis.lpush( "stringlists" , "SerialList" ); shardedJedis.lpush( "stringlists" , "HashList" ); shardedJedis.lpush( "numberlists" , "3" ); shardedJedis.lpush( "numberlists" , "1" ); shardedJedis.lpush( "numberlists" , "5" ); shardedJedis.lpush( "numberlists" , "2" ); System.out.println( "所有元素-stringlists:" +shardedJedis.lrange( "stringlists" , 0 , - 1 )); System.out.println( "所有元素-numberlists:" +shardedJedis.lrange( "numberlists" , 0 , - 1 )); System.out.println( "=============删=============" ); // 删除列表指定的值 ,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈 System.out.println( "成功删除指定元素个数-stringlists:" +shardedJedis.lrem( "stringlists" , 2 , "vector" )); System.out.println( "删除指定元素之后-stringlists:" +shardedJedis.lrange( "stringlists" , 0 , - 1 )); // 删除区间以外的数据 System.out.println( "删除下标0-3区间之外的元素:" +shardedJedis.ltrim( "stringlists" , 0 , 3 )); System.out.println( "删除指定区间之外元素后-stringlists:" +shardedJedis.lrange( "stringlists" , 0 , - 1 )); // 列表元素出栈 System.out.println( "出栈元素:" +shardedJedis.lpop( "stringlists" )); System.out.println( "元素出栈后-stringlists:" +shardedJedis.lrange( "stringlists" , 0 , - 1 )); System.out.println( "=============改=============" ); // 修改列表中指定下标的值 shardedJedis.lset( "stringlists" , 0 , "hello list!" ); System.out.println( "下标为0的值修改后-stringlists:" +shardedJedis.lrange( "stringlists" , 0 , - 1 )); System.out.println( "=============查=============" ); // 数组长度 System.out.println( "长度-stringlists:" +shardedJedis.llen( "stringlists" )); System.out.println( "长度-numberlists:" +shardedJedis.llen( "numberlists" )); // 排序 /* * list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort("list"), * 会出现"ERR One or more scores can't be converted into double" */ SortingParams sortingParameters = new SortingParams(); sortingParameters.alpha(); sortingParameters.limit( 0 , 3 ); System.out.println( "返回排序后的结果-stringlists:" +shardedJedis.sort( "stringlists" ,sortingParameters)); System.out.println( "返回排序后的结果-numberlists:" +shardedJedis.sort( "numberlists" )); // 子串: start为元素下标,end也为元素下标;-1代表倒数一个元素,-2代表倒数第二个元素 System.out.println( "子串-第二个开始到结束:" +shardedJedis.lrange( "stringlists" , 1 , - 1 )); // 获取列表指定下标的值 System.out.println( "获取下标为2的元素:" +shardedJedis.lindex( "stringlists" , 2 )+ "\n" ); } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ======================list========================== 清空库中所有数据:OK =============增============= 所有元素-stringlists:[HashList, SerialList, MapList, LinkedList, vector, vector, ArrayList, vector] 所有元素-numberlists:[ 2 , 5 , 1 , 3 ] =============删============= 成功删除指定元素个数-stringlists: 2 删除指定元素之后-stringlists:[HashList, SerialList, MapList, LinkedList, ArrayList, vector] 删除下标 0 - 3 区间之外的元素:OK 删除指定区间之外元素后-stringlists:[HashList, SerialList, MapList, LinkedList] 出栈元素:HashList 元素出栈后-stringlists:[SerialList, MapList, LinkedList] =============改============= 下标为 0 的值修改后-stringlists:[hello list!, MapList, LinkedList] =============查============= 长度-stringlists: 3 长度-numberlists: 4 返回排序后的结果-stringlists:[LinkedList, MapList, hello list!] 返回排序后的结果-numberlists:[ 1 , 2 , 3 , 5 ] 子串-第二个开始到结束:[MapList, LinkedList] 获取下标为 2 的元素:LinkedList |
4)Set功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | private void SetOperate() { System.out.println( "======================set==========================" ); // 清空数据 System.out.println( "清空库中所有数据:" +jedis.flushDB()); System.out.println( "=============增=============" ); System.out.println( "向sets集合中加入元素element001:" +jedis.sadd( "sets" , "element001" )); System.out.println( "向sets集合中加入元素element002:" +jedis.sadd( "sets" , "element002" )); System.out.println( "向sets集合中加入元素element003:" +jedis.sadd( "sets" , "element003" )); System.out.println( "向sets集合中加入元素element004:" +jedis.sadd( "sets" , "element004" )); System.out.println( "查看sets集合中的所有元素:" +jedis.smembers( "sets" )); System.out.println(); System.out.println( "=============删=============" ); System.out.println( "集合sets中删除元素element003:" +jedis.srem( "sets" , "element003" )); System.out.println( "查看sets集合中的所有元素:" +jedis.smembers( "sets" )); /*System.out.println("sets集合中任意位置的元素出栈:"+jedis.spop("sets"));//注:出栈元素位置居然不定?--无实际意义 System.out.println("查看sets集合中的所有元素:"+jedis.smembers("sets"));*/ System.out.println(); System.out.println( "=============改=============" ); System.out.println(); System.out.println( "=============查=============" ); System.out.println( "判断element001是否在集合sets中:" +jedis.sismember( "sets" , "element001" )); System.out.println( "循环查询获取sets中的每个元素:" ); Set<String> set = jedis.smembers( "sets" ); Iterator<String> it=set.iterator() ; while (it.hasNext()){ Object obj=it.next(); System.out.println(obj); } System.out.println(); System.out.println( "=============集合运算=============" ); System.out.println( "sets1中添加元素element001:" +jedis.sadd( "sets1" , "element001" )); System.out.println( "sets1中添加元素element002:" +jedis.sadd( "sets1" , "element002" )); System.out.println( "sets1中添加元素element003:" +jedis.sadd( "sets1" , "element003" )); System.out.println( "sets1中添加元素element002:" +jedis.sadd( "sets2" , "element002" )); System.out.println( "sets1中添加元素element003:" +jedis.sadd( "sets2" , "element003" )); System.out.println( "sets1中添加元素element004:" +jedis.sadd( "sets2" , "element004" )); System.out.println( "查看sets1集合中的所有元素:" +jedis.smembers( "sets1" )); System.out.println( "查看sets2集合中的所有元素:" +jedis.smembers( "sets2" )); System.out.println( "sets1和sets2交集:" +jedis.sinter( "sets1" , "sets2" )); System.out.println( "sets1和sets2并集:" +jedis.sunion( "sets1" , "sets2" )); System.out.println( "sets1和sets2差集:" +jedis.sdiff( "sets1" , "sets2" )); //差集:set1中有,set2中没有的元素 } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | ======================set========================== 清空库中所有数据:OK =============增============= 向sets集合中加入元素element001: 1 向sets集合中加入元素element002: 1 向sets集合中加入元素element003: 1 向sets集合中加入元素element004: 1 查看sets集合中的所有元素:[element001, element002, element003, element004] =============删============= 集合sets中删除元素element003: 1 查看sets集合中的所有元素:[element001, element002, element004] =============改============= =============查============= 判断element001是否在集合sets中: true 循环查询获取sets中的每个元素: element001 element002 element004 =============集合运算============= sets1中添加元素element001: 1 sets1中添加元素element002: 1 sets1中添加元素element003: 1 sets1中添加元素element002: 1 sets1中添加元素element003: 1 sets1中添加元素element004: 1 查看sets1集合中的所有元素:[element001, element002, element003] 查看sets2集合中的所有元素:[element002, element003, element004] sets1和sets2交集:[element002, element003] sets1和sets2并集:[element001, element002, element003, element004] sets1和sets2差集:[element001] |
5)SortedSet功能(有序集合)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | private void SortedSetOperate() { System.out.println( "======================zset==========================" ); // 清空数据 System.out.println(jedis.flushDB()); System.out.println( "=============增=============" ); System.out.println( "zset中添加元素element001:" +shardedJedis.zadd( "zset" , 7.0 , "element001" )); System.out.println( "zset中添加元素element002:" +shardedJedis.zadd( "zset" , 8.0 , "element002" )); System.out.println( "zset中添加元素element003:" +shardedJedis.zadd( "zset" , 2.0 , "element003" )); System.out.println( "zset中添加元素element004:" +shardedJedis.zadd( "zset" , 3.0 , "element004" )); System.out.println( "zset集合中的所有元素:" +shardedJedis.zrange( "zset" , 0 , - 1 )); //按照权重值排序 System.out.println(); System.out.println( "=============删=============" ); System.out.println( "zset中删除元素element002:" +shardedJedis.zrem( "zset" , "element002" )); System.out.println( "zset集合中的所有元素:" +shardedJedis.zrange( "zset" , 0 , - 1 )); System.out.println(); System.out.println( "=============改=============" ); System.out.println(); System.out.println( "=============查=============" ); System.out.println( "统计zset集合中的元素中个数:" +shardedJedis.zcard( "zset" )); System.out.println( "统计zset集合中权重某个范围内(1.0——5.0),元素的个数:" +shardedJedis.zcount( "zset" , 1.0 , 5.0 )); System.out.println( "查看zset集合中element004的权重:" +shardedJedis.zscore( "zset" , "element004" )); System.out.println( "查看下标1到2范围内的元素值:" +shardedJedis.zrange( "zset" , 1 , 2 )); } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ======================zset========================== OK =============增============= zset中添加元素element001: 1 zset中添加元素element002: 1 zset中添加元素element003: 1 zset中添加元素element004: 1 zset集合中的所有元素:[element003, element004, element001, element002] =============删============= zset中删除元素element002: 1 zset集合中的所有元素:[element003, element004, element001] =============改============= =============查============= 统计zset集合中的元素中个数: 3 统计zset集合中权重某个范围内( 1.0 —— 5.0 ),元素的个数: 2 查看zset集合中element004的权重: 3.0 查看下标 1 到 2 范围内的元素值:[element004, element001] |
6)Hash功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | private void HashOperate() { System.out.println( "======================hash==========================" ); //清空数据 System.out.println(jedis.flushDB()); System.out.println( "=============增=============" ); System.out.println( "hashs中添加key001和value001键值对:" +shardedJedis.hset( "hashs" , "key001" , "value001" )); System.out.println( "hashs中添加key002和value002键值对:" +shardedJedis.hset( "hashs" , "key002" , "value002" )); System.out.println( "hashs中添加key003和value003键值对:" +shardedJedis.hset( "hashs" , "key003" , "value003" )); System.out.println( "新增key004和4的整型键值对:" +shardedJedis.hincrBy( "hashs" , "key004" , 4l)); System.out.println( "hashs中的所有值:" +shardedJedis.hvals( "hashs" )); System.out.println(); System.out.println( "=============删=============" ); System.out.println( "hashs中删除key002键值对:" +shardedJedis.hdel( "hashs" , "key002" )); System.out.println( "hashs中的所有值:" +shardedJedis.hvals( "hashs" )); System.out.println(); System.out.println( "=============改=============" ); System.out.println( "key004整型键值的值增加100:" +shardedJedis.hincrBy( "hashs" , "key004" , 100l)); System.out.println( "hashs中的所有值:" +shardedJedis.hvals( "hashs" )); System.out.println(); System.out.println( "=============查=============" ); System.out.println( "判断key003是否存在:" +shardedJedis.hexists( "hashs" , "key003" )); System.out.println( "获取key004对应的值:" +shardedJedis.hget( "hashs" , "key004" )); System.out.println( "批量获取key001和key003对应的值:" +shardedJedis.hmget( "hashs" , "key001" , "key003" )); System.out.println( "获取hashs中所有的key:" +shardedJedis.hkeys( "hashs" )); System.out.println( "获取hashs中所有的value:" +shardedJedis.hvals( "hashs" )); System.out.println(); } |
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ======================hash========================== OK =============增============= hashs中添加key001和value001键值对: 1 hashs中添加key002和value002键值对: 1 hashs中添加key003和value003键值对: 1 新增key004和 4 的整型键值对: 4 hashs中的所有值:[value001, value002, value003, 4 ] =============删============= hashs中删除key002键值对: 1 hashs中的所有值:[value001, value003, 4 ] =============改============= key004整型键值的值增加 100 : 104 hashs中的所有值:[value001, value003, 104 ] =============查============= 判断key003是否存在: true 获取key004对应的值: 104 批量获取key001和key003对应的值:[value001, value003] 获取hashs中所有的key:[key004, key003, key001] 获取hashs中所有的value:[value001, value003, 104 ] |
本博客文章均已测试验证,欢迎评论、交流、点赞。
部分文章来源于网络,如有侵权请联系删除。
转载请注明原文链接:https://www.cnblogs.com/sueyyyy/p/10006334.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix