Jedis常用命令

心已赠人 2022-07-12 06:18 232阅读 0赞

操作各种数据类型的key的方法

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //==================操作的key的方法 ======================
  4. //删除指定的
  5. jds.del("hash");
  6. //序列化key,并返回被序列化的值
  7. jds.dump("key");
  8. //判断key是否存在
  9. jds.exists("key");
  10. //从当前库中随机返回一个key
  11. jds.randomKey();
  12. //返回key中存储值 的数据类型
  13. jds.type("key");
  14. //返回符合正则的的所有key
  15. jds.keys("*k*");
  16. //将key移到数据库2中
  17. jds.move("key", 2);
  18. //更改key的名字。旧key不存在时报错。当新key存在时,则将覆盖旧值
  19. jds.rename("oldKey", "newkey");
  20. //仅当新key不存在时,才更改旧key名字
  21. jds.renamenx("oldKey", "newkey");
  22. //-------------------------设置过期--------------------------------
  23. //给key设置过期时间,单位:秒
  24. jds.expire("key", 10);
  25. //给key设置过期时间,值是时间戳
  26. jds.expireAt("key", 1293840000);
  27. //移除key的过期时间,key将持久保存
  28. jds.persist("key");
  29. //返回key的过期时间
  30. jds.ttl("key");

String

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //=========================String方法==============================
  4. //-----------------------赋值------------------------------
  5. //指定key的值,如果key已经存在,则覆盖旧值
  6. jds.set("key", "value");
  7. //给key赋值,当key存在时操作无效。避免了值的覆盖
  8. jds.setnx("key", "value");
  9. //同时指定多个key-value
  10. jds.mset("key5","value5","key6","6");
  11. //同时指定多个key-value,key已经存在的操作无效
  12. jds.msetnx("key6","value6","key7","7");
  13. //给key值设置过期时间(单位:秒),如果key存在,则新值会覆盖旧值
  14. jds.setex("key", 5, "valuex");
  15. //用value值替换从指定字符的索引开始的子串
  16. jds.setrange("key", 1, "value");
  17. //-------------------------更改--------------------------------
  18. //将key中存的数字值增1,如果key不存在,则key值会被初始化为0,然后再加1
  19. //如果值不是数字则返回一个错误
  20. jds.incr("key6");
  21. //将key中存的数字值增加指定值,如果key不存在,则key值会被初始化为0,然后再加10
  22. jds.incrBy("key6", 10);
  23. //将key中存的数字值增加指定的浮点型值,如果key不存在,则key值会被初始化为0,然后再加
  24. jds.incrByFloat("key6", 10.0);
  25. //将key中的值减1,如果key不存在,则先初始化为0再减1
  26. jds.decr("key6");
  27. //将key中的值减去指定值,如果key不存在,则先初始化为0再减
  28. jds.decrBy("key6", 8);
  29. //在key的值的末尾追加串,如果key不存,直接赋值为当前值
  30. jds.append("key", "appendValue");
  31. //-------------------------取值--------------------------------
  32. //获取key的值
  33. jds.get("key");
  34. //按字符的索引区间返回key的子串,包头也包尾
  35. jds.getrange("key", 0, 1);
  36. //将key的值改变,并返回旧值,如果key不存在返回null
  37. jds.getSet("key", "value1");
  38. //返回一个或多个key的值
  39. jds.mget("key","key1");
  40. //返回key的字符串的长度
  41. jds.strlen("key");
  42. }

Hash

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //========================= Hash方法 ==============================
  4. //一个hash表可存储40多亿个键值对,即2的32次方减1个。
  5. //-------------------------赋值--------------------------------
  6. // 1. hset:将名为hash的Hash表的键为key字段赋值为value
  7. jds.hset("hash", "key", "value");
  8. // 2. hmset:将多个键值对存进hash表
  9. Map<String, String> map = new HashMap<String, String>();
  10. map.put("key1", "value1");
  11. map.put("key2", "value2");
  12. jds.hmset("hash", map);
  13. // 3. hsetnx:只有当hash表中不存在该字段时才赋值。若字段存在,则操作无效
  14. jds.hsetnx("hash", "key", "22");// 由于key已经存在,所以"22"这个值未生效
  15. jds.hsetnx("hash", "k", "22"); // 查看k的值为22
  16. //-------------------------查--------------------------------
  17. // 4. hget:获取hash表中key键对应的值
  18. jds.hget("hash", "key");
  19. // 5. hgetAll:获取hash表中所有键值对,结果是Map类型
  20. jds.hgetAll("hash");
  21. // 6. hmget:获取hash表中指定键的值,结果是数组类型
  22. jds.hmget("hash", "key","key1");
  23. // 7. hkeys:获取hash表中所有键,结果是数组类型
  24. jds.hkeys("hash");
  25. // 8. hvals:获取hash表中所有值,结果是数组类型
  26. jds.hvals("hash");
  27. // 9.hexists:查看hash表中是否存在key键
  28. jds.hexists("hash", "key");
  29. // 10. hlen:获取hash表中键的个数
  30. jds.hlen("hash");
  31. // 11. 迭代hash表中的键值对
  32. // jds.hscan("hash", "");//未测试
  33. //-------------------------改--------------------------------
  34. // 12. hincrBy:将hash表中指定键的整型值加3
  35. jds.hincrBy("hash", "k", 3);
  36. // 13. hincrByFloat:将hash表中指定键的浮点型值加3
  37. jds.hincrByFloat("hash", "k", 3);
  38. //-------------------------删除--------------------------------
  39. // 14. hdel:删除hash表中一个或多个键值对
  40. jds.hdel("hash", "key","key1");
  41. }

List

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //========================= List方法 ==============================
  4. //每张列表可存40多亿个元素,即2的32次方减1个。
  5. //-------------------------赋值--------------------------------
  6. // 1. lpush:向名为list的List列表头部添加一个或多个值
  7. jds.lpush("list", "value1","value2");
  8. // lpushx:将一个值插入到已存在的list列表头部,如果不存在操作无效
  9. jds.lpushx("list", "value3");//注:只能一次插入一个
  10. // rpush:将一个或多个值插入列表尾部
  11. jds.rpush("list", "value100","value101");
  12. // rpushx:将一个值插入已存在列表尾部,若列表不存在操作无效
  13. jds.rpushx("list", "value102");//只能插入一个
  14. // lset:给指定索引赋值,若索引不存在报错
  15. jds.lset("list", 0, "val");
  16. // linsert:在指定元素前面或后面插入元素
  17. jds.linsert("list", LIST_POSITION.BEFORE, "val", "value0");//在val元素前面插入
  18. //-------------------------删除--------------------------------
  19. //弹出列表第一个元素
  20. jds.lpop("list");
  21. //弹出列表最后一个元素
  22. jds.rpop("list");
  23. //弹出列表最后一个元素,并添加到另一个列表中
  24. jds.rpoplpush("list", "otherlist");
  25. // lrem:删除表中count个与value相等的元素
  26. //count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
  27. //count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
  28. //count = 0 : 移除表中所有与 VALUE 相等的值。
  29. jds.lrem("list", 2, "value");
  30. // ltrim:只保留指定区间的元素
  31. jds.ltrim("list", 0, 5);
  32. // 5秒.......
  33. jds.blpop(5, "list");
  34. //-------------------------取值--------------------------------
  35. // llen:获取表的元素个数
  36. jds.llen("list");
  37. // lrange:获取指定区间的元素
  38. jds.lrange("list", 0, jds.llen("list"));
  39. // lindex:通过索引获取元素
  40. jds.lindex("list", 0);

Set

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //========================= Set方法 ==============================
  4. //-------------------------添加--------------------------------
  5. //sadd:向set集合添加一个或多个元素
  6. jds.sadd("set", "a","b");
  7. //-------------------------删除--------------------------------
  8. //随机返回一个元素并删除
  9. jds.spop("set");
  10. //删除集合中一个或多个元素
  11. jds.srem("set", "a","b");
  12. //-------------------------更改--------------------------------
  13. //将一个元素从一个集合中移到另一个集合中
  14. jds.smove("srckey", "dstkey", "member");
  15. //返回多个集合的并集
  16. jds.sunion("set","set1");
  17. //将多个集合的并集保存到另一个集合中
  18. jds.sunionstore("dstkey", "set","set1");
  19. //-------------------------取值--------------------------------
  20. //scard:返回set集合的元素个数
  21. jds.scard("set");
  22. //返回前面集合与后面几个集合的差集
  23. jds.sdiff("set","set2");
  24. //将几个集合的差集保存在destSet集合中
  25. jds.sdiffstore("destSet", "set2","set");
  26. //返回几个集合的交集
  27. jds.sinter("set","set2");
  28. //将几个集合的交集保存在destSet集合中
  29. jds.sinterstore("destSet", "set","set2");
  30. //判断a元素是否是set集合的成员
  31. jds.sismember("set", "a");
  32. //返回集合中的所有元素
  33. jds.smembers("set");
  34. //返回集合中一个或多个随机数
  35. jds.srandmember("set");
  36. jds.srandmember("set", 2);
  37. }

Sorted Set

  1. public static void main(String[] args) {
  2. Jedis jds = new Jedis("192.168.2.244",6379);
  3. //========================= 有序集合(Sorted set) ==============================
  4. /* Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合的成员是唯一的,但分数(score)却可以重复。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 */
  5. //-------------------------赋值--------------------------------
  6. // zadd:将一个或多个元素及其分数值添加到有序集合sortSet中
  7. // 如果value元素已经存在,则更新分数值,然后根据分数重新插入正确位置
  8. // 分数值可以是int和double型
  9. jds.zadd("sortSet", 5, "value");
  10. //-------------------------更改--------------------------------
  11. // 将value元素的分值加 2.0。如果值是负数,则为减;如果value元素不存在,则添加
  12. jds.zincrby("sortSet", 2, "value");
  13. //将一个或多个有序集合的交集存储在“destkey”集合中
  14. jds.zinterstore("dstkey", "sortSet","sort");
  15. //-------------------------删除--------------------------------
  16. //zrem:删除一个或多个元素
  17. jds.zrem("sortSet", "value","c");
  18. //zremrangeByRank:删除指定索引区间的元素(首尾均包含)
  19. jds.zremrangeByRank("sortSet", 0, 1);
  20. //zremrangeByScore:删除指定分数之间的元素(首尾均包含)
  21. jds.zremrangeByScore("sortSet", 5, 10);
  22. //-------------------------取值--------------------------------
  23. // zcard:获取指定有序集合的全部成员数量
  24. jds.zcard("sortSet");
  25. // zcount:获取指定分数区间的成员数量
  26. jds.zcount("sortSet", 0, 10);
  27. //zrank:返回指定元素的索引值
  28. jds.zrank("sortSet", "a");
  29. //zscore:返回指定元素的分数值
  30. jds.zscore("sortSet", "a");
  31. //zrevrange:返回指定区间的元素,它们通过 索引、分数从高到低排
  32. jds.zrevrange("sortSet", 0, 10);
  33. //zrevrangeByScore:返回指定分数区间的元素,它们通过分数从高到低排列
  34. jds.zrevrangeByScore("sortSet", 1, 7);
  35. //zrevrank:返回指定成员的排名,按分数值从大到小排的
  36. jds.zrevrank("sortSet", "value1");
  37. //zrange:返回指定索引区间的元素
  38. jds.zrange("sortSet", 0, 10);
  39. // 获取全部分元素
  40. jds.zrange("sortSet", 0, -1);
  41. // zrangeByScore:返回指定分数值之间的元素
  42. // 具有相同分数值的元素按字典序排列
  43. jds.zrangeByScore("sortSet", 0, 20);
  44. //---------------------2.8.9版本后添加的常用方法,未测-----------------------------
  45. // zlexcount:获取指定字典区间的元素个数
  46. // jds.zlexcount("sortSet", "[a", "[c");
  47. //zrangeByLex:获得指定字典区间的元素
  48. //jds.zrangeByLex("sortSet", "[a", "[b");
  49. //zremrangeByLex:删除指定字典区间的元素
  50. //jds.zremrangeByLex("sortSet", "(a", "[b");
  51. }

发表评论

表情:
评论列表 (有 0 条评论,232人围观)

还没有评论,来说两句吧...

相关阅读

    相关 命令

    文章目录 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等

    相关 命令

    1 用户切换 切换为普通用户: Ctrl+d 切换为root用户: sudo su 回车输入密码 2 删除命令 删除某一文件夹下所有文件: rm \ 3查看电脑的CP