- package ddd;
- import java.util.List;
- import redis.clients.jedis.Jedis;
- public class String_Redis {
- /**
- * Redis 字符串型号
- * @param args
- */
- public static void main(String[] args) {
- Jedis je=new Jedis("127.0.0.1",6379,60000);
- je.auth("ycm12345");
- /**
- * 将字符串值 value 关联到 key 。
- 如果 key 已经持有其他值,SET 就覆写旧值,无视类型。
- */
- je.set("key001", "0");
- /**
- * 将 key 的值设为 value ,当且仅当 key 不存在。
- 若给定的 key 已经存在,则SETNX 不做任何动作。
- */
- je.setnx("key001", "新的值,若己经存在,不在存入");
- //为IP 加上1
- je.incr("key001");
- System.out.println(je.get("key001"));
- //再加 15,结果为16
- je.incrBy("key001", 15);
- System.out.println(je.get("key001"));
- //------不是数字时,报错-----------
- //ERR value is not an integer or out of range
- je.set("key001","not the num");
- //je.incr("key001");
- System.out.println("---------------------------------");
- //如果 key 已经存在并且是一个字符串,APPEND 命令将 value 追加到 key 原来的值的末尾
- //如果 key 不存在,APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
- je.append("k01", "ap1");
- System.out.println(je.get("k01"));
- je.append("k01".getBytes(), " is me".getBytes());
- System.out.println(new String(je.get("k01").getBytes()));
- System.out.println("---------------------------------");
- //返回所有 (一个或多个) 给定 key 的值。
- //如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
- List<String> list=je.mget("k01","key001");
- for(String s:list){
- System.out.println(s);
- }
- System.out.println("---------------------------------");
- /**
- *同时设置一个或多个 key-value 对。
- 如果某个给定 key 已经存在,那么MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑
- 使用MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
- */
- je.mset("k01","我是新K01","key001","我是key001");
- list=je.mget("k01","key001");
- for(String s:list){
- System.out.println(s);
- }
- System.out.println("---------------------------------");
- /**
- * 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
- 即使只有一个给定 key 已存在,MSETNX 也会拒绝执行所有给定 key 的设置操作。
- */
- je.msetnx("k01","我是新K02dd","key001","我是key002dd","k02","新k02");
- list=je.mget("k01","key001","k02");
- for(String s:list){
- System.out.println(s);
- }
- System.out.println("---------------------------------");
- /**
- * 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。
- * SETEX
- */
- je.setex("kk01", 1, "1秒钟后失效");
- /**
- * 这个命令和SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间
- */
- je.psetex("k03", 10, "失效20毫秒");
- System.out.println(je.get("k03"));
- try{
- //休眠30毫秒
- Thread.currentThread().sleep(30);
- }catch(Exception ex){
- }
- //己经失效,找不到了
- System.out.println(je.get("k03"));
- System.out.println("---------------------------------");
- /**
- * 返回 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
- */
- System.out.println(je.strlen("k01"));
- }
- }
Redis(2.6版本以上) String 常用操作和方法详解
最新推荐文章于 2020-12-01 22:18:38 发布