/**
* jedis.del("method"); DEL方法可清空所有数据类型 * @author johnzhang * 常用方法: * String: 字符 * 1.set 赋值 jedis.set("key","value");返回值 ok * 2.get 取值 jedis.get("key");如果存在返回值 否则null* 3.append 在原数据后添加内容 jedis.apped("testvalue");获取总值的长度 (str + testvalue = strtestvalue)
* 4.setex 设置时间 在对应的时间内销毁内容 jedis.apped("key",(秒数),"keyValue") 返回值ok * 5.setnx 当前值不存在时赋值 jedis.setnx("key","value"); 当前key不存在时进行存储 返回0 / 1 * 7.incr 在原来的内容加数字 1 如果非数字执行该方法时报错 jedis.incr("key"); 返回增加后的值 内容必须为 int 1 2 3 * 8.decr 在原来的内容上 -1 如果是非数字执行该方法报错 jedis.decr("key"); 返回减去后的值 内容同上 * 9.incrBy 在原来的内容上增加指定值 jedis.incrBy("key",新增的位数) 返回key的值 * 10.decrBy 在原来的内容上减去指定值 jedis.decrBy("key",减去的位数) 返回key的值 * 11.mset 创建多个变量 jedis.mset("k1","value1","k2","value2") 返回Ok * List: 列表 * 1.lpush 从左进行赋值 jedis.lpush("lis", "str2");返回数组条数 * 2.rpush 从右进行赋值 jedis.rpush("lis", "str2");返回数组条数 * 3.del 清空 jedis.del("lis"); 清空 返回 1 * 4.lpushx 当前key存在时进行存储从左开始 jedis.lpushx("lis", "str2");返回数组条数 * 5.rpushx 当前key存在是进行存储从右开始 jedis.rpushx("lis", "str2");返回数组条数 * 6.rpoplpush 删除左边一个添加到另一个集合内 jedis.rpoplpush("lis", "lis2");移除lis 第一个 并返回移除的字符 * 7.llen 获取集合的长度 jedis.llen("lis");//返回 字符长度 * 8.lset 设置集合指定下标下的内容 下标从0 开始 jedis.lset("lis", 0, "value"); ok * 9.lrem 删除指定 jedis.lrem("lis", 删除的数量, "str1");0删除全部 * 10.Ltrim 获取指定key 内的下标范围值 jedis.ltrim("lis", 0, 0);从左开始截取 * 11.linsert 在列表中添加内容 jedis.linsert("lis", LIST_POSITION.BEFORE, "在那添加 value", "添加什么值");/LIST_POSITION常量 * 12.lrange 获取范围内的数据 jedis.lrange("lis", 0, endLen) * 13.brpop 在指定时间内返回 key集合的随机值 jedis.brpop(3, "p1");如果有 返回key Value 否则返回【】 并删除集合内的数据 * 14.rpop 移除右边第一个值 jedis.rpop("p1");//返回移除的value15.blpop 获取到值获者到达指定时间才停止操作 jedis.blpop(100, "l2");返回 key - value
16.brpop 获取到值获者到达指定时间才停止操作 jedis.brpop(100, "l2");返回key - value
17.lindex 获取指定下标的value jedis.lindex("key",索引)
18.linsert 在值之前或之后增加信息 jedis.linsert("k2", LIST_POSITION.BEFORE, "v1", "v0")//在k2列表中 v1的数据之前增加 v0
19.
* Hash: 散列 * 1.hset 赋值 jedis.hset(key)返回新增条数 * 2.hget 取值 jedis.hget("key", "coloum");//返回value * 3.hgetall 获取所有值 jedis.hgetAll(key);返回所有 * 4.hexists 判断值是否存在 jedis.hexists(key,coloum) 返回结果是否存在 true/false * 5.hincuBy 在原值上增加指定值 jedis.hincrBy(key,coloum) 返回增加后的数据 * 6.hdel 删除值 jedis.hdel(key,coloum) 返回删除条数 * 7.hkeys 获取所有key jedis.hkeys(key) 返回所有key * 8.hvals 获取所有value jedis.hvals(key) 返回所有value * 9.hlen 获取条数 jedis.hlen(key); 返回条数 * Set: 集合 * 1.sset 设置值 jedis * 1.sadd 增加数据 jedis.sadd("key", "value");返回新增条数 * 2.srem 删除数据 jedis.srem("key", "value");删除指定Value 返回删除个数 * 3.smembers 获取Set集合内所有数据 jedis.smembers("key"); 返回set内所有数据 * 4.sismember 判断Set集合是否存在值 jedis.sismember("key","value");// true/false 是否存在 * 5.sdiff 返回 集合 1 有 集合 2 没有的数据 jedis.sdiff("key1","key2"); key1 :{1,2,3} key2:{2,3} 返回 1 * 6.sinter 获取 seta 123 set setb 23 setc3 得到值3 jedis.sinter("key1","key2","key3"); key1 {1,2} key2{2,3},key3{2} 返回2 * 7.sunion 获取唯一的 jedis.sunion("key1","key2","key3"); key1 {1,2} key2{2,3},key3{3,4} 返回 1 2 3 4 * 8.scard 返回set集合内的个数 jedis.scard("key1");//返回个数 * 9.sdiffstore 返回插入条数 jedis.sdiffstore("key1", "key2","key3")查询 key2 有 key3 没有的值插入到 key1的set集合内 * 10.srandmember 随机获取set集合内的值 jedis.srandmember("key1"); 返回value 1个 构造方法后增加count 指定返回的个数 * 11.spop 删除并返回弹出的信息 jedis.spop("key",count); 指定要弹出内容的key count指定弹出的条数 * Zst: 有序集合 * 1.zadd 增加数据 jedis.zadd("key1",分值,"coloumName"); * 2.zscore 获取数据 jedis.zscore("key1","列明"); 返回值 单精度 * 3.zrange 获取指定范围的值 jedis.zrange("key1",开始分值,结束分值); 返回符合数据的分值 * 4.zrangeByScore 获取指定范围的值 同上 但 分值 为flot 开始和结束 为1.0等 * 5.zincrby 指定 name新增几个值分值类型flot jedis.zincyby("key1",增加几个,加到哪); 返回值1 / 0 * 6.zcard 获取set集合内的个数 jedis.zcard("key1") 返回个数 * 7.zrem 移除指定 coloum jedis.zrem("z1", "name");//返回 0 / 1 * 8.zremrangeByScore 移除分值范围内的值 jedis.zremrangeByScore("key1",0,60);//移除分值为 0 - 60 的值 包括 60 * 9.zrank 获取排名从小到大 jedis.zrank("z1","coloum");//返回排名 1 2 3 4 1 的排名为 0 *
其他方法:
keys * 查询所有key jedis.keys("*");
type key 查询类型 jedis.type("str")
* Redis:事务管理 * cmd Java 作用 * 1.multi 开启事务 jedis.multi();//开启事务 开启事务 * 2.exec 提交事务 jedis.multi().exec();//提交事务 提交事务 * 3.watch 锁定值/监控 jedis.watch("str"); 锁定值 在事务范围内不允许修改 例如在cmd中执行锁定开启事务修改值 在执行exec之前 又在 java中执行了hset 那么执行 exec会抛出
* 4.unwatch 取消锁定/取消监控 jedis.unwatch(); 取消监控 * 5.discard 取消事务 jedis.multi().discard() 不执行方法之后的代码事务 * * Redis:数据备份 * cmd 作用 Java * save/bgsave 生成dump.rdb 文件 jedis.save();/jedis.bgsave() ok * CONFIG get requirepass 判断是否需要密码 * auth password 输入登录密码 jedis.auth(password); * EXPIRE/PEXPIRE 设置过期时间 jedis.expire("key", 时间单位秒);jedis.PEXPIRE("key",时间单位毫秒); * TTL 检查还有多长时间失效 jedis.ttl("key"); * Sort 排序 jedis.sort("key"); 排序字母的话 jedis.sort("p1",new SortingParams().alpha()) * 订阅-发布: * 订阅:SUBSCRIBE / subscribe * (1)Subscribe。表示订阅成功的反馈信息。第二个值是订阅成功的频道名称,第三个值是当前客户端订阅的频道数量。 * (2)message。这个类型的回复是我们最关心的,它表示接收到的消息。第二个值表示产生消息的频道名称,第三个值是消息的内容。 * (3)unsubscribe。表示成功取消订阅某个频道。第二个值是对应的频道名称,第三个值是当前客户端订阅的频道数量,当此值为0时客户端会退出订阅状态,之后就可以执行其他非“发布/订阅”模式的命令了。 * (4)PSUBSCRIBE命令订阅指定的规则channel.?*可以匹配channel.1和channel.10,但不会匹配channel.。 * 操作步骤 * 1、先订阅再发布 * 1. 订阅语法:subscribe name(这个Name是随机的) * 2. 发布语法:publisch name(这个Name是随机的) 发布的信息 * Jedis发布信息 先订阅 * JedisPubSub jedisPubSub = new JedisPubSub() { * @Override * public void onMessage(String channel, String message) { * System.out.println(channel); * System.out.println(message); * } * }; * jedis.subscribe(jedisPubSub, "channel1"); * * 提交多个操作并不需要返回 * Pipeline p = jedis.pipelined(); * xxxx * p.sync; */