JedisCommands接口详解

朱雀 2022-04-13 07:47 413阅读 0赞

文章出处:https://blog.csdn.net/hu961691590/article/details/78549270

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* Common interface for sharded and non-sharded Jedis
*/
public interface JedisCommands {

  1. /\*\*
  2. \* 存储数据到缓存中,若key已存在则覆盖 value的长度不能超过1073741824 bytes (1 GB)
  3. \*
  4. \* @param key
  5. \* @param value
  6. \* @return
  7. \*/
  8. String set(String key, String value);
  9. /\*\*
  10. \* 存储数据到缓存中,并制定过期时间和当Key存在时是否覆盖。
  11. \*
  12. \* @param key
  13. \* @param value
  14. \* @param nxxx
  15. \* nxxx的值只能取NX或者XX,如果取NX,则只有当key不存在是才进行set,如果取XX,则只有当key已经存在时才进行set
  16. \*
  17. \* @param expx expx的值只能取EX或者PX,代表数据过期时间的单位,EX代表秒,PX代表毫秒。
  18. \* @param time 过期时间,单位是expx所代表的单位。
  19. \* @return
  20. \*/
  21. String set(String key, String value, String nxxx, String expx, long time);
  22. /\*\*
  23. \* 从缓存中根据key取得其String类型的值,如果key不存在则返回null,如果key存在但value不是string类型的,
  24. \* 则返回一个error。这个方法只能从缓存中取得valuestring类型的值。
  25. \*
  26. \* @param key
  27. \* @return
  28. \*/
  29. String get(String key);
  30. /\*\*
  31. \* 检查某个key是否在缓存中存在,如果存在返回true,否则返回false;需要注意的是,即使该key所对应的value是一个空字符串,
  32. \* 也依然会返回true
  33. \*
  34. \* @param key
  35. \* @return
  36. \*/
  37. Boolean exists(String key);
  38. /\*\*
  39. \*
  40. \* 如果一个key设置了过期时间,则取消其过期时间,使其永久存在。
  41. \*
  42. \* @param key
  43. \* @return 返回1或者0,1代表取消过期时间成功,0代表不成功(只有当key不存在时这种情况才会发生)
  44. \*/
  45. Long persist(String key);
  46. /\*\*
  47. \* 返回某个key所存储的数据类型,返回的数据类型有可能是"none", "string", "list", "set", "zset",
  48. \* "hash". "none"代表key不存在。
  49. \*
  50. \* @param key
  51. \* @return
  52. \*/
  53. String type(String key);
  54. /\*\*
  55. \* key设置一个特定的过期时间,单位为秒。过期时间一到,redis将会从缓存中删除掉该key
  56. \* 即使是有过期时间的keyredis也会在持久化时将其写到硬盘中,并把相对过期时间改为绝对的Unix过期时间。
  57. \* 在一个有设置过期时间的key上重复设置过期时间将会覆盖原先设置的过期时间。
  58. \*
  59. \* @param key
  60. \* @param seconds
  61. \* @return 返回1表示成功设置过期时间,返回0表示key不存在。
  62. \*/
  63. Long expire(String key, int seconds);
  64. /\*\*
  65. \* 机制同\{@link expire\}一样,只是时间单位改为毫秒。
  66. \*
  67. \* @param key
  68. \* @param milliseconds
  69. \* @return 返回值同 \{@link expire\}一样。
  70. \*/
  71. Long pexpire(String key, long milliseconds);
  72. /\*\*
  73. \* \{@link expire\}不一样,expireAt设置的时间不是能存活多久,而是固定的UNIX时间(从1970年开始算起),单位为秒。
  74. \*
  75. \* @param key
  76. \* @param unixTime
  77. \* @return
  78. \*/
  79. Long expireAt(String key, long unixTime);
  80. /\*\*
  81. \* \{@link expireAt\}机制相同,但单位为毫秒。
  82. \*
  83. \* @param key
  84. \* @param millisecondsTimestamp
  85. \* @return
  86. \*/
  87. Long pexpireAt(String key, long millisecondsTimestamp);
  88. /\*\*
  89. \* 返回一个key还能活多久,单位为秒
  90. \*
  91. \* @param key
  92. \* @return 如果该key本来并没有设置过期时间,则返回-1,如果该key不存在,则返回-2
  93. \*/
  94. Long ttl(String key);
  95. /\*\*
  96. \* 设置或者清除指定keyvalue上的某个位置的比特位,如果该key原先不存在,则新创建一个key,其value将会自动分配内存,
  97. \* 直到可以放下指定位置的bit值。
  98. \*
  99. \* @param key
  100. \* @param offset
  101. \* @param value true代表1false代表0
  102. \* @return 返回原来位置的bit值是否是1,如果是1,则返回true,否则返回false
  103. \*/
  104. Boolean setbit(String key, long offset, boolean value);
  105. /\*\*
  106. \* 设置或者清除指定keyvalue上的某个位置的比特位,如果该key原先不存在,则新创建一个key,其value将会自动分配内存,
  107. \* 直到可以放下指定位置的bit值。
  108. \*
  109. \* @param key
  110. \* @param offset
  111. \* @param value 只能是"1"或者"0"
  112. \* @return 返回原来位置的bit值是否是1,如果是1,则返回true,否则返回false
  113. \*/
  114. Boolean setbit(String key, long offset, String value);
  115. /\*\*
  116. \* 取得偏移量为offsetbit值。
  117. \*
  118. \* @param key
  119. \* @param offset
  120. \* @return true代表1false代表0
  121. \*/
  122. Boolean getbit(String key, long offset);
  123. /\*\*
  124. \* 这个命令的作用是覆盖key对应的string的一部分,从指定的offset处开始,覆盖value的长度。
  125. \* 如果offset比当前key对应string还要长,
  126. \* 那这个string后面就补0以达到offset。不存在的keys被认为是空字符串,所以这个命令可以确保key有一个足够大的字符串
  127. \* 能在offset处设置value
  128. \*
  129. \* @param key
  130. \* @param offset
  131. \* @param value
  132. \* @return 该命令修改后的字符串长度
  133. \*/
  134. Long setrange(String key, long offset, String value);
  135. /\*\*
  136. \* 获得start - end之间的子字符串,若偏移量为负数,代表从末尾开始计算,例如-1代表倒数第一个,-2代表倒数第二个
  137. \*
  138. \* @param key
  139. \* @param startOffset
  140. \* @param endOffset
  141. \* @return
  142. \*/
  143. String getrange(String key, long startOffset, long endOffset);
  144. /\*\*
  145. \* 自动将key对应到value并且返回原来key对应的value。如果key存在但是对应的value不是字符串,就返回错误。
  146. \*
  147. \* @param key
  148. \* @param value
  149. \* @return
  150. \*/
  151. String getSet(String key, String value);
  152. /\*\*
  153. \* 参考 \{@link set(String key, String value, String nxxx, String expx, long
  154. \* time)\}
  155. \*
  156. \* @param key
  157. \* @param value
  158. \* @return
  159. \*/
  160. Long setnx(String key, String value);
  161. /\*\*
  162. \* 参考 \{@link set(String key, String value, String nxxx, String expx, long
  163. \* time)\}
  164. \*
  165. \* @param key
  166. \* @param seconds
  167. \* @param value
  168. \* @return
  169. \*/
  170. String setex(String key, int seconds, String value);
  171. /\*\*
  172. \* 将指定key的值减少某个值
  173. \*
  174. \* @param key
  175. \* @param integer
  176. \* @return 返回减少后的新值
  177. \*/
  178. Long decrBy(String key, long integer);
  179. /\*\*
  180. \* 将指定Key的值减少1
  181. \*
  182. \* @param key
  183. \* @return 返回减少后的新值
  184. \*/
  185. Long decr(String key);
  186. /\*\*
  187. \* 将指定的key的值增加指定的值
  188. \*
  189. \* @param key
  190. \* @param integer
  191. \* @return 返回增加后的新值
  192. \*/
  193. Long incrBy(String key, long integer);
  194. /\*\*
  195. \* 将指定的key的值增加指定的值(浮点数)
  196. \*
  197. \* @param key
  198. \* @param value
  199. \* @return 返回增加后的新值
  200. \*/
  201. Double incrByFloat(String key, double value);
  202. /\*\*
  203. \* 将指定的key的值增加1
  204. \*
  205. \* @param key
  206. \* @return 返回增加后的新值
  207. \*/
  208. Long incr(String key);
  209. /\*\*
  210. \* key存在,将value追加到原有字符串的末尾。若key不存在,则创建一个新的空字符串。
  211. \*
  212. \* @param key
  213. \* @param value
  214. \* @return 返回字符串的总长度
  215. \*/
  216. Long append(String key, String value);
  217. /\*\*
  218. \* 返回start - end 之间的子字符串(start end处的字符也包括在内)
  219. \*
  220. \* @param key
  221. \* @param start
  222. \* @param end
  223. \* @return 返回子字符串
  224. \*/
  225. String substr(String key, int start, int end);
  226. /\*\*
  227. \* 设置hash表里field字段的值为value。如果key不存在,则创建一个新的hash
  228. \*
  229. \* @param key
  230. \* @param field
  231. \* @param value
  232. \* @return 如果该字段已经存在,那么将会更新该字段的值,返回0.如果字段不存在,则新创建一个并且返回1.
  233. \*/
  234. Long hset(String key, String field, String value);
  235. /\*\*
  236. \* 如果该key对应的值是一个Hash表,则返回对应字段的值。 如果不存在该字段,或者key不存在,则返回一个"nil"值。
  237. \*
  238. \* @param key
  239. \* @param field
  240. \* @return
  241. \*/
  242. String hget(String key, String field);
  243. /\*\*
  244. \* 当字段不存在时,才进行set
  245. \*
  246. \* @param key
  247. \* @param field
  248. \* @param value
  249. \* @return 如果该字段已经存在,则返回0.若字段不存在,则创建后set,返回1.
  250. \*/
  251. Long hsetnx(String key, String field, String value);
  252. /\*\*
  253. \* 设置多个字段和值,如果字段存在,则覆盖。
  254. \*
  255. \* @param key
  256. \* @param hash
  257. \* @return 设置成功返回OK,设置不成功则返回EXCEPTION
  258. \*/
  259. String hmset(String key, Map<String, String> hash);
  260. /\*\*
  261. \* hash中获取多个字段的值,若字段不存在,则其值为nil
  262. \*
  263. \* @param key
  264. \* @param fields
  265. \* @return 按顺序返回多个字段的值。
  266. \*/
  267. List<String> hmget(String key, String... fields);
  268. /\*\*
  269. \* hash中指定字段的值增加指定的值
  270. \*
  271. \* @param key
  272. \* @param field
  273. \* @param value
  274. \* @return 返回增加后的新值
  275. \*/
  276. Long hincrBy(String key, String field, long value);
  277. /\*\*
  278. \* 判断hash中指定字段是否存在
  279. \*
  280. \* @param key
  281. \* @param field
  282. \* @return 若存在返回1,若不存在返回0
  283. \*/
  284. Boolean hexists(String key, String field);
  285. /\*\*
  286. \* 删除hash中指定字段
  287. \*
  288. \* @param key
  289. \* @param field
  290. \* @return 删除成功返回1 删除不成功返回0
  291. \*/
  292. Long hdel(String key, String... field);
  293. /\*\*
  294. \* 返回 key 指定的哈希集包含的字段的数量
  295. \*
  296. \* @param key
  297. \* @return 哈希集中字段的数量,当 key 指定的哈希集不存在时返回 0
  298. \*/
  299. Long hlen(String key);
  300. /\*\*
  301. \* 返回 key 指定的哈希集中所有字段的名字。
  302. \*
  303. \* @param key
  304. \* @return 哈希集中的字段列表,当 key 指定的哈希集不存在时返回空列表。
  305. \*/
  306. Set<String> hkeys(String key);
  307. /\*\*
  308. \* 返回 key 指定的哈希集中所有字段的值。
  309. \*
  310. \* @param key
  311. \* @return 哈希集中的值的列表,当 key 指定的哈希集不存在时返回空列表。
  312. \*/
  313. List<String> hvals(String key);
  314. /\*\*
  315. \* 返回 key 指定的哈希集中所有的字段和值
  316. \*
  317. \* @param key
  318. \* @return 返回 key 指定的哈希集中所有的字段和值,若key不存在返回空map
  319. \*/
  320. Map<String, String> hgetAll(String key);
  321. /\*\*
  322. \* 向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 key
  323. \* 保存的不是一个列表,那么会返回一个错误。
  324. \*
  325. \* 可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a
  326. \* b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c
  327. \*
  328. \* @param key
  329. \* @param string
  330. \* @return push 操作后的列表长度。
  331. \*/
  332. Long rpush(String key, String... string);
  333. /\*\*
  334. \* 将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key
  335. \* 对应的值不是一个 list 的话,那么会返回一个错误。
  336. \*
  337. \* 可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。元素是从最左端的到最右端的、一个接一个被插入到 list
  338. \* 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。
  339. \*
  340. \* @param key
  341. \* @param string
  342. \* @return push 操作后的列表长度。
  343. \*/
  344. Long lpush(String key, String... string);
  345. /\*\*
  346. \* 返回存储在 key 里的list的长度。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0 当存储在 key
  347. \* 里的值不是一个list的话,会返回error
  348. \*
  349. \* @param key
  350. \* @return key对应的list的长度。
  351. \*/
  352. Long llen(String key);
  353. /\*\*
  354. \* 返回存储在 key 的列表里指定范围内的元素。 start end
  355. \* 偏移量都是基于0的下标,即list的第一个元素下标是0list的表头),第二个元素下标是1,以此类推。
  356. \*
  357. \* 偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。
  358. \*
  359. \* @param key
  360. \* @param start
  361. \* @param end
  362. \* @return 指定范围里的列表元素。
  363. \*/
  364. List<String> lrange(String key, long start, long end);
  365. /\*\*
  366. \* 修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。start stop 都是由0开始计数的, 这里的 0
  367. \* 是列表里的第一个元素(表头),1 是第二个元素,以此类推。
  368. \*
  369. \* @param key
  370. \* @param start
  371. \* @param end
  372. \* @return
  373. \*/
  374. String ltrim(String key, long start, long end);
  375. /\*\*
  376. \* 返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。
  377. \* 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。
  378. \*
  379. \* key 位置的值不是一个列表的时候,会返回一个error
  380. \*
  381. \* @param key
  382. \* @param index
  383. \* @return 请求的对应元素,或者当 index 超过范围的时候返回 nil
  384. \*/
  385. String lindex(String key, long index);
  386. /\*\*
  387. \* 设置 index 位置的list元素的值为 value
  388. \*
  389. \* index超出范围时会返回一个error
  390. \*
  391. \* @param key
  392. \* @param index
  393. \* @param value
  394. \* @return 状态恢复
  395. \*/
  396. String lset(String key, long index, String value);
  397. /\*\*
  398. \* 从存于 key 的列表里移除前 count 次出现的值为 value 的元素。 这个 count 参数通过下面几种方式影响这个操作:
  399. \*
  400. \* count > 0: 从头往尾移除值为 value 的元素。 count < 0: 从尾往头移除值为 value 的元素。 count = 0:
  401. \* 移除所有值为 value 的元素。
  402. \*
  403. \* 比如, LREM list -2 "hello" 会从存于 list 的列表里移除最后两个出现的 "hello"
  404. \*
  405. \* 需要注意的是,如果list里没有存在key就会被当作空list处理,所以当 key 不存在的时候,这个命令会返回 0
  406. \*
  407. \* @param key
  408. \* @param count
  409. \* @param value
  410. \* @return 返回删除的个数
  411. \*/
  412. Long lrem(String key, long count, String value);
  413. /\*\*
  414. \* 移除并且返回 key 对应的 list 的第一个元素。
  415. \*
  416. \* @param key
  417. \* @return 返回第一个元素的值,或者当 key 不存在时返回 nil
  418. \*/
  419. String lpop(String key);
  420. /\*\*
  421. \* 移除并返回存于 key list 的最后一个元素。
  422. \*
  423. \* @param key
  424. \* @return 最后一个元素的值,或者当 key 不存在的时候返回 nil
  425. \*/
  426. String rpop(String key);
  427. /\*\*
  428. \* 添加一个或多个指定的member元素到集合的 key中.指定的一个或者多个元素member 如果已经在集合key中存在则忽略.如果集合key
  429. \* 不存在,则新建集合key,并添加member元素到集合key中.
  430. \*
  431. \* 如果key 的类型不是集合则返回错误.
  432. \*
  433. \* @param key
  434. \* @param member
  435. \* @return 返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素.
  436. \*/
  437. Long sadd(String key, String... member);
  438. /\*\*
  439. \* 返回key集合所有的元素.
  440. \*
  441. \* 该命令的作用与使用一个参数的SINTER 命令作用相同.
  442. \*
  443. \* @param key
  444. \* @return 集合中的所有元素.
  445. \*/
  446. Set<String> smembers(String key);
  447. /\*\*
  448. \* key集合中移除指定的元素. 如果指定的元素不是key集合中的元素则忽略 如果key集合不存在则被视为一个空的集合,该命令返回0.
  449. \*
  450. \* 如果key的类型不是一个集合,则返回错误.
  451. \*
  452. \* @param key
  453. \* @param member
  454. \* @return 从集合中移除元素的个数,不包括不存在的成员.
  455. \*/
  456. Long srem(String key, String... member);
  457. /\*\*
  458. \* 移除并返回一个集合中的随机元素
  459. \*
  460. \* 该命令与 SRANDMEMBER相似,不同的是srandmember命令返回一个随机元素但是不移除.
  461. \*
  462. \* @param key
  463. \* @return 被移除的元素, key不存在的时候返回 nil .
  464. \*/
  465. String spop(String key);
  466. /\*\*
  467. \* 移除并返回多个集合中的随机元素
  468. \*
  469. \* @param key
  470. \* @param count
  471. \* @return 被移除的元素, key不存在的时候值为 nil .
  472. \*/
  473. Set<String> spop(String key, long count);
  474. /\*\*
  475. \* 返回集合存储的key的基数 (集合元素的数量).
  476. \*
  477. \* @param key
  478. \* @return 集合的基数(元素的数量),如果key不存在,则返回 0.
  479. \*/
  480. Long scard(String key);
  481. /\*\*
  482. \* 返回成员 member 是否是存储的集合 key的成员.
  483. \*
  484. \* @param key
  485. \* @param member
  486. \* @return 如果member元素是集合key的成员,则返回1.如果member元素不是key的成员,或者集合key不存在,则返回0
  487. \*/
  488. Boolean sismember(String key, String member);
  489. /\*\*
  490. \* 仅提供key参数,那么随机返回key集合中的一个元素.该命令作用类似于SPOP命令, 不同的是SPOP命令会将被选择的随机元素从集合中移除,
  491. \* SRANDMEMBER仅仅是返回该随记元素,而不做任何操作.
  492. \*
  493. \* @param key
  494. \* @return 返回随机的元素,如果key不存在则返回nil
  495. \*/
  496. String srandmember(String key);
  497. /\*\*
  498. \* 如果count是整数且小于元素的个数,返回含有 count
  499. \* 个不同的元素的数组,如果count是个整数且大于集合中元素的个数时,仅返回整个集合的所有元素
  500. \* ,当count是负数,则会返回一个包含count的绝对值的个数元素的数组
  501. \* ,如果count的绝对值大于元素的个数,则返回的结果集里会出现一个元素出现多次的情况.
  502. \*
  503. \* @param key
  504. \* @param count
  505. \* @return 返回一个随机的元素数组,如果key不存在则返回一个空的数组.
  506. \*/
  507. List<String> srandmember(String key, int count);
  508. /\*\*
  509. \* 返回keystring类型value的长度。如果key对应的非string类型,就返回错误。
  510. \*
  511. \* @param key
  512. \* @return key对应的字符串value的长度,或者0key不存在)
  513. \*/
  514. Long strlen(String key);
  515. /\*\*
  516. \* 该命令添加指定的成员到key对应的有序集合中,每个成员都有一个分数。你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,
  517. \* 那么其分数就会被更新成最新的
  518. \* ,并且该成员会重新调整到正确的位置,以确保集合有序。如果key不存在,就会创建一个含有这些成员的有序集合,就好像往一个空的集合中添加一样
  519. \* 。如果key存在,但是它并不是一个有序集合,那么就返回一个错误。
  520. \*
  521. \* 分数的值必须是一个表示数字的字符串,并且可以是double类型的浮点数。
  522. \*
  523. \* @param key
  524. \* @param score
  525. \* @param member
  526. \* @return 返回添加到有序集合中元素的个数,不包括那种已经存在只是更新分数的元素。
  527. \*/
  528. Long zadd(String key, double score, String member);
  529. /\*\*
  530. \* 该命令添加指定的成员到key对应的有序集合中,每个成员都有一个分数。你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,
  531. \* 那么其分数就会被更新成最新的
  532. \* ,并且该成员会重新调整到正确的位置,以确保集合有序。如果key不存在,就会创建一个含有这些成员的有序集合,就好像往一个空的集合中添加一样
  533. \* 。如果key存在,但是它并不是一个有序集合,那么就返回一个错误。
  534. \*
  535. \* 分数的值必须是一个表示数字的字符串,并且可以是double类型的浮点数。
  536. \*
  537. \* @param key
  538. \* @param scoreMembers
  539. \* @return 返回添加到有序集合中元素的个数,不包括那种已经存在只是更新分数的元素。
  540. \*/
  541. Long zadd(String key, Map<String, Double> scoreMembers);
  542. /\*\*
  543. \* 返回有序集key中,指定区间内的成员。其中成员按score值递增(从小到大)来排序。具有相同score值的成员按字典序来排列。
  544. \*
  545. \* 如果你需要成员按score值递减(score相等时按字典序递减)来排列,请使用ZREVRANGE命令。
  546. \* 下标参数startstop都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推。
  547. \* 你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。
  548. \*
  549. \* 超出范围的下标并不会引起错误。如果start的值比有序集的最大下标还要大,或是start >
  550. \* stop时,ZRANGE命令只是简单地返回一个空列表。
  551. \* 另一方面,假如stop参数的值比有序集的最大下标还要大,那么Redisstop当作最大下标来处理。
  552. \*
  553. \* @param key
  554. \* @param start
  555. \* @param end
  556. \* @return 指定范围的元素列表
  557. \*/
  558. Set<String> zrange(String key, long start, long end);
  559. /\*\*
  560. \* 从集合中删除指定member元素,当key存在,但是其不是有序集合类型,就返回一个错误。
  561. \*
  562. \* @param key
  563. \* @param member
  564. \* @return 返回的是从有序集合中删除的成员个数,不包括不存在的成员。
  565. \*/
  566. Long zrem(String key, String... member);
  567. /\*\*
  568. \* 为有序集key的成员memberscore值加上增量increment。如果key中不存在member,就在key中添加一个member
  569. \* scoreincrement(就好像它之前的score0.0)。如果key不存在,就创建一个只含有指定member成员的有序集合。
  570. \*
  571. \* key不是有序集类型时,返回一个错误。
  572. \*
  573. \* score值必须整数值或双精度浮点数。也有可能给一个负数来减少score的值。
  574. \*
  575. \* @param key
  576. \* @param score
  577. \* @param member
  578. \* @return member成员的新score值.
  579. \*/
  580. Double zincrby(String key, double score, String member);
  581. /\*\*
  582. \* 返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。排名以0为底,也就是说,
  583. \* score值最小的成员排名为0
  584. \*
  585. \* 使用ZREVRANK命令可以获得成员按score值递减(从大到小)排列的排名。
  586. \*
  587. \* @param key
  588. \* @param member
  589. \* @return 如果member是有序集key的成员,返回member的排名的整数。 如果member不是有序集key的成员,返回 nil
  590. \*/
  591. Long zrank(String key, String member);
  592. /\*\*
  593. \* 返回有序集key中成员member的排名,其中有序集成员按score值从大到小排列。排名以0为底,也就是说,score值最大的成员排名为0
  594. \*
  595. \* 使用ZRANK命令可以获得成员按score值递增(从小到大)排列的排名。
  596. \*
  597. \* @param key
  598. \* @param member
  599. \* @return 如果member是有序集key的成员,返回member的排名。整型数字。 如果member不是有序集key的成员,返回Bulk
  600. \* reply: nil.
  601. \*/
  602. Long zrevrank(String key, String member);
  603. /\*\*
  604. \* 返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列。具有相同score值的成员按字典序的反序排列。
  605. \* 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。
  606. \*
  607. \* @param key
  608. \* @param start
  609. \* @param end
  610. \* @return 指定范围的元素列表(可选是否含有分数)。
  611. \*/
  612. Set<String> zrevrange(String key, long start, long end);
  613. /\*\*
  614. \* 返回有序集key中,指定区间内的成员。其中成员按score值递增(从小到大)来排序。具有相同score值的成员按字典序来排列。
  615. \*
  616. \* 如果你需要成员按score值递减(score相等时按字典序递减)来排列,请使用ZREVRANGE命令。
  617. \* 下标参数startstop都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推。
  618. \* 你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。
  619. \*
  620. \* 超出范围的下标并不会引起错误。如果start的值比有序集的最大下标还要大,或是start >
  621. \* stop时,ZRANGE命令只是简单地返回一个空列表。
  622. \* 另一方面,假如stop参数的值比有序集的最大下标还要大,那么Redisstop当作最大下标来处理。
  623. \*
  624. \* 使用WITHSCORES选项,来让成员和它的score值一并返回,返回列表以value1,score1, ...,
  625. \* valueN,scoreN的格式表示,而不是value1,...,valueN。客户端库可能会返回一些更复杂的数据类型,比如数组、元组等。
  626. \*
  627. \* @param key
  628. \* @param start
  629. \* @param end
  630. \* @return 指定范围的元素列表(以元组集合的形式)。
  631. \*/
  632. Set<Tuple> zrangeWithScores(String key, long start, long end);
  633. /\*\*
  634. \* 返回有序集key中,指定区间内的成员。其中成员的位置按score值递减(从大到小)来排列。具有相同score值的成员按字典序的反序排列。
  635. \* 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。
  636. \*
  637. \* @param key
  638. \* @param start
  639. \* @param end
  640. \* @return 指定范围的元素列表(可选是否含有分数)。
  641. \*/
  642. Set<Tuple> zrevrangeWithScores(String key, long start, long end);
  643. /\*\*
  644. \* 返回key的有序集元素个数。
  645. \*
  646. \* @param key
  647. \* @return key存在的时候,返回有序集的元素个数,否则返回0
  648. \*/
  649. Long zcard(String key);
  650. /\*\*
  651. \* 返回有序集key中,成员memberscore值。
  652. \*
  653. \* 如果member元素不是有序集key的成员,或key不存在,返回nil
  654. \*
  655. \* @param key
  656. \* @param member
  657. \* @return member成员的score值(double型浮点数)
  658. \*/
  659. Double zscore(String key, String member);
  660. /\*\*
  661. \* 对一个集合或者一个列表排序
  662. \*
  663. \* 对集合,有序集合,或者列表的value进行排序。默认情况下排序只对数字排序,双精度浮点数。
  664. \*
  665. \* @see \#sort(String, String)
  666. \* @see \#sort(String, SortingParams)
  667. \* @see \#sort(String, SortingParams, String)
  668. \* @param key
  669. \* @return 假设集合或列表包含的是数字元素,那么返回的将会是从小到大排列的一个列表。
  670. \*/
  671. List<String> sort(String key);
  672. /\*\*
  673. \* 根据指定参数来对列表或集合进行排序.
  674. \* <p>
  675. \* <b>examples:</b>
  676. \* <p>
  677. \* 一下是一些例子列表或者key-value:
  678. \*
  679. \* <pre>
  680. \* x = \[1, 2, 3\]
  681. \* y = \[a, b, c\]
  682. \*
  683. \* k1 = z
  684. \* k2 = y
  685. \* k3 = x
  686. \*
  687. \* w1 = 9
  688. \* w2 = 8
  689. \* w3 = 7
  690. \* </pre>
  691. \*
  692. \* 排序:
  693. \*
  694. \* <pre>
  695. \* sort(x) or sort(x, sp.asc())
  696. \* -> \[1, 2, 3\]
  697. \*
  698. \* sort(x, sp.desc())
  699. \* -> \[3, 2, 1\]
  700. \*
  701. \* sort(y)
  702. \* -> \[c, a, b\]
  703. \*
  704. \* sort(y, sp.alpha())
  705. \* -> \[a, b, c\]
  706. \*
  707. \* sort(y, sp.alpha().desc())
  708. \* -> \[c, b, a\]
  709. \* </pre>
  710. \*
  711. \* Limit (e.g. for Pagination):
  712. \*
  713. \* <pre>
  714. \* sort(x, sp.limit(0, 2))
  715. \* -> \[1, 2\]
  716. \*
  717. \* sort(y, sp.alpha().desc().limit(1, 2))
  718. \* -> \[b, a\]
  719. \* </pre>
  720. \*
  721. \* 使用外部键来排序:
  722. \*
  723. \* <pre>
  724. \* sort(x, sb.by(w\*))
  725. \* -> \[3, 2, 1\]
  726. \*
  727. \* sort(x, sb.by(w\*).desc())
  728. \* -> \[1, 2, 3\]
  729. \* </pre>
  730. \*
  731. \* Getting external keys:
  732. \*
  733. \* <pre>
  734. \* sort(x, sp.by(w\*).get(k\*))
  735. \* -> \[x, y, z\]
  736. \*
  737. \* sort(x, sp.by(w\*).get(\#).get(k\*))
  738. \* -> \[3, x, 2, y, 1, z\]
  739. \* </pre>
  740. \*
  741. \* @see \#sort(String)
  742. \* @see \#sort(String, SortingParams, String)
  743. \* @param key
  744. \* @param sortingParameters
  745. \* @return a list of sorted elements.
  746. \*/
  747. List<String> sort(String key, SortingParams sortingParameters);
  748. /\*\*
  749. \* 返回有序集key中,score值在minmax之间(默认包括score值等于minmax)的成员。
  750. \*
  751. \* @param key
  752. \* @param min
  753. \* @param max
  754. \* @return 指定分数范围的元素个数。
  755. \*/
  756. Long zcount(String key, double min, double max);
  757. /\*\*
  758. \* 返回有序集key中,score值在minmax之间(默认包括score值等于minmax)的成员。
  759. \*
  760. \* @param key
  761. \* @param min
  762. \* @param max
  763. \* @return 指定分数范围的元素个数。
  764. \*/
  765. Long zcount(String key, String min, String max);
  766. /\*\*
  767. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  768. \* 具有相同分数的元素按字典序排列
  769. \*
  770. \* @param key
  771. \* @param min
  772. \* @param max
  773. \* @return 指定分数范围的元素列表
  774. \*/
  775. Set<String> zrangeByScore(String key, double min, double max);
  776. /\*\*
  777. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  778. \* 具有相同分数的元素按字典序排列
  779. \*
  780. \* @param key
  781. \* @param min
  782. \* @param max
  783. \* @return 指定分数范围的元素列表
  784. \*/
  785. Set<String> zrangeByScore(String key, String min, String max);
  786. /\*\*
  787. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  788. \* 具有相同分数的元素按字典序排列, 指定返回结果的数量及区间。
  789. \*
  790. \* @param key
  791. \* @param min
  792. \* @param max
  793. \* @param offset
  794. \* @param count
  795. \* @return 指定分数范围的元素列表
  796. \*/
  797. Set<String> zrangeByScore(String key, double min, double max, int offset, int count);
  798. /\*\*
  799. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  800. \* 具有相同分数的元素按字典序排列, 指定返回结果的数量及区间。
  801. \*
  802. \* @param key
  803. \* @param min
  804. \* @param max
  805. \* @param offset
  806. \* @param count
  807. \* @return 指定分数范围的元素列表
  808. \*/
  809. Set<String> zrangeByScore(String key, String min, String max, int offset, int count);
  810. /\*\*
  811. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  812. \* 具有相同分数的元素按字典序排列。返回元素和其分数,而不只是元素。
  813. \*
  814. \* @param key
  815. \* @param min
  816. \* @param max
  817. \* @return
  818. \*/
  819. Set<Tuple> zrangeByScoreWithScores(String key, double min, double max);
  820. /\*\*
  821. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  822. \* 具有相同分数的元素按字典序排列, 指定返回结果的数量及区间。 返回元素和其分数,而不只是元素。
  823. \*
  824. \* @param key
  825. \* @param min
  826. \* @param max
  827. \* @param offset
  828. \* @param count
  829. \* @return
  830. \*/
  831. Set<Tuple> zrangeByScoreWithScores(String key, double min, double max, int offset,
  832. int count);
  833. /\*\*
  834. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  835. \* 具有相同分数的元素按字典序排列。返回元素和其分数,而不只是元素。
  836. \*
  837. \* @param key
  838. \* @param min
  839. \* @param max
  840. \* @return
  841. \*/
  842. Set<Tuple> zrangeByScoreWithScores(String key, String min, String max);
  843. /\*\*
  844. \* 返回key的有序集合中的分数在minmax之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
  845. \* 具有相同分数的元素按字典序排列, 指定返回结果的数量及区间。 返回元素和其分数,而不只是元素。
  846. \*
  847. \* @param key
  848. \* @param min
  849. \* @param max
  850. \* @param offset
  851. \* @param count
  852. \* @return
  853. \*/
  854. Set<Tuple> zrangeByScoreWithScores(String key, String min, String max, int offset,
  855. int count);
  856. /\*\*
  857. \* 机制与zrangeByScore一样,只是返回结果为降序排序。
  858. \*
  859. \* @param key
  860. \* @param max
  861. \* @param min
  862. \* @return
  863. \*/
  864. Set<String> zrevrangeByScore(String key, double max, double min);
  865. /\*\*
  866. \* 机制与zrangeByScore一样,只是返回结果为降序排序。
  867. \*
  868. \* @param key
  869. \* @param max
  870. \* @param min
  871. \* @return
  872. \*/
  873. Set<String> zrevrangeByScore(String key, String max, String min);
  874. /\*\*
  875. \* 机制与zrangeByScore一样,只是返回结果为降序排序。
  876. \*
  877. \* @param key
  878. \* @param max
  879. \* @param min
  880. \* @param offset
  881. \* @param count
  882. \* @return
  883. \*/
  884. Set<String> zrevrangeByScore(String key, double max, double min, int offset, int count);
  885. /\*\*
  886. \* 机制与zrangeByScoreWithScores一样,只是返回结果为降序排序。
  887. \*
  888. \* @param key
  889. \* @param max
  890. \* @param min
  891. \* @return
  892. \*/
  893. Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min);
  894. /\*\*
  895. \* 机制与zrangeByScore一样,只是返回结果为降序排序。
  896. \*
  897. \* @param key
  898. \* @param max
  899. \* @param min
  900. \* @param offset
  901. \* @param count
  902. \* @return
  903. \*/
  904. Set<String> zrevrangeByScore(String key, String max, String min, int offset, int count);
  905. /\*\*
  906. \* 机制与zrangeByScoreWithScores一样,只是返回结果为降序排序。
  907. \*
  908. \* @param key
  909. \* @param max
  910. \* @param min
  911. \* @return
  912. \*/
  913. Set<Tuple> zrevrangeByScoreWithScores(String key, String max, String min);
  914. /\*\*
  915. \* 机制与zrangeByScoreWithScores一样,只是返回结果为降序排序。
  916. \*
  917. \* @param key
  918. \* @param max
  919. \* @param min
  920. \* @param offset
  921. \* @param count
  922. \* @return
  923. \*/
  924. Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min, int offset,
  925. int count);
  926. /\*\*
  927. \* 机制与zrangeByScoreWithScores一样,只是返回结果为降序排序。
  928. \*
  929. \* @param key
  930. \* @param max
  931. \* @param min
  932. \* @param offset
  933. \* @param count
  934. \* @return
  935. \*/
  936. Set<Tuple> zrevrangeByScoreWithScores(String key, String max, String min, int offset,
  937. int count);
  938. /\*\*
  939. \* 移除有序集key中,指定排名(rank)区间内的所有成员。下标参数startstop都以0为底,0处是分数最小的那个元素。这些索引也可是负数,
  940. \* 表示位移从最高分处开始数。例如,-1是分数最高的元素,-2是分数第二高的,依次类推。
  941. \*
  942. \* @param key
  943. \* @param start
  944. \* @param end
  945. \* @return 被移除成员的数量。
  946. \*/
  947. Long zremrangeByRank(String key, long start, long end);
  948. /\*\*
  949. \* 移除有序集key中,所有score值介于minmax之间(包括等于minmax)的成员。
  950. \*
  951. \* 自版本2.1.6开始,score值等于minmax的成员也可以不包括在内,语法请参见ZRANGEBYSCORE命令。
  952. \*
  953. \* @param key
  954. \* @param start
  955. \* @param end
  956. \* @return 删除的元素的个数
  957. \*/
  958. Long zremrangeByScore(String key, double start, double end);
  959. /\*\*
  960. \* 移除有序集key中,所有score值介于minmax之间(包括等于minmax)的成员。
  961. \*
  962. \* 自版本2.1.6开始,score值等于minmax的成员也可以不包括在内,语法请参见ZRANGEBYSCORE命令。
  963. \*
  964. \* @param key
  965. \* @param start
  966. \* @param end
  967. \* @return 删除的元素的个数
  968. \*/
  969. Long zremrangeByScore(String key, String start, String end);
  970. /\*\*
  971. \* 当插入到有序集合中的元素都具有相同的分数时,这个命令可以返回minmax指定范围内的元素的数量。
  972. \*
  973. \* @param key
  974. \* @param min
  975. \* @param max
  976. \* @return
  977. \*/
  978. Long zlexcount(final String key, final String min, final String max);
  979. /\*\*
  980. \* value 插入存于 key 的列表中在基准值 pivot 的前面或后面。
  981. \*
  982. \* key 不存在时,这个list会被看作是空list,任何操作都不会发生。
  983. \*
  984. \* key 存在,但保存的不是一个list的时候,会返回error
  985. \*
  986. \* @param key
  987. \* @param where
  988. \* @param pivot 前或后
  989. \* @param value
  990. \* @return insert 操作后的 list 长度。
  991. \*/
  992. Long linsert(String key, Client.LIST\_POSITION where, String pivot, String value);
  993. /\*\*
  994. \* 只有当 key 已经存在并且存着一个 list 的时候,在这个 key 下面的 list 的头部插入 value LPUSH 相反,当
  995. \* key 不存在的时候不会进行任何操作。
  996. \*
  997. \* @param key
  998. \* @param string
  999. \* @return push 操作后的 list 长度。
  1000. \*/
  1001. Long lpushx(String key, String... string);
  1002. /\*\*
  1003. \* 将值 value 插入到列表 key 的表尾, 当且仅当 key 存在并且是一个列表。 RPUSH 命令相反, key
  1004. \* 不存在时,RPUSHX 命令什么也不做。
  1005. \*
  1006. \* @param key
  1007. \* @param string
  1008. \* @return Push操作后List的长度
  1009. \*/
  1010. Long rpushx(String key, String... string);
  1011. /\*\*
  1012. \* @deprecated unusable command, this will be removed in 3.0.0.
  1013. \*/
  1014. @Deprecated
  1015. List<String> blpop(String arg);
  1016. /\*\*
  1017. \* BLPOP 是阻塞式列表的弹出原语。 它是命令 LPOP 的阻塞版本,这是因为当给定列表内没有任何元素可供弹出的时候, 连接将被 BLPOP
  1018. \* 命令阻塞。 当给定多个 key 参数时,按参数 key 的先后顺序依次检查各个列表,弹出第一个非空列表的头元素。 \{@link http
  1019. \* ://www.redis.cn/commands/blpop.html\}
  1020. \*
  1021. \* @param timeout
  1022. \* @param key
  1023. \* @return
  1024. \*/
  1025. List<String> blpop(int timeout, String key);
  1026. /\*\*
  1027. \* @deprecated unusable command, this will be removed in 3.0.0.
  1028. \*/
  1029. @Deprecated
  1030. List<String> brpop(String arg);
  1031. /\*\*
  1032. \* BRPOP 是一个阻塞的列表弹出原语。 它是 RPOP 的阻塞版本,因为这个命令会在给定list无法弹出任何元素的时候阻塞连接。
  1033. \* 该命令会按照给出的 key 顺序查看 list,并在找到的第一个非空 list 的尾部弹出一个元素。
  1034. \*
  1035. \* 请在 BLPOP 文档 中查看该命令的准确语义,因为 BRPOP BLPOP
  1036. \* 基本是完全一样的,除了它们一个是从尾部弹出元素,而另一个是从头部弹出元素。 \{@link http
  1037. \* ://www.redis.cn/commands/brpop.html\}
  1038. \*
  1039. \*
  1040. \* @param timeout
  1041. \* @param key
  1042. \* @return
  1043. \*/
  1044. List<String> brpop(int timeout, String key);
  1045. /\*\*
  1046. \* 删除一个Key,如果删除的key不存在,则直接忽略。
  1047. \*
  1048. \* @param key
  1049. \* @return 被删除的keys的数量
  1050. \*/
  1051. Long del(String key);
  1052. /\*\*
  1053. \* 回显
  1054. \*
  1055. \* @param string
  1056. \* @return 回显输入的字符串
  1057. \*/
  1058. String echo(String string);
  1059. /\*\*
  1060. \* 将当前数据库的 key 移动到给定的数据库 db 当中。
  1061. \*
  1062. \* 如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。
  1063. \*
  1064. \* 因此,也可以利用这一特性,将 MOVE 当作锁(locking)原语(primitive)。
  1065. \*
  1066. \* @param key
  1067. \* @param dbIndex
  1068. \* @return 移动成功返回 1 失败则返回 0
  1069. \*/
  1070. Long move(String key, int dbIndex);
  1071. /\*\*
  1072. \* 统计字符串的字节数
  1073. \*
  1074. \* @param key
  1075. \* @return 字节数
  1076. \*/
  1077. Long bitcount(final String key);
  1078. /\*\*
  1079. \* 统计字符串指定起始位置的字节数
  1080. \*
  1081. \* @param key
  1082. \* @param start
  1083. \* @param end
  1084. \* @return
  1085. \*/
  1086. Long bitcount(final String key, long start, long end);
  1087. /\*\*
  1088. \* 迭代hash里面的元素
  1089. \*
  1090. \* @param key
  1091. \* @param cursor
  1092. \* @return
  1093. \*/
  1094. ScanResult<Map.Entry<String, String>> hscan(final String key, final String cursor);
  1095. /\*\*
  1096. \* 迭代set里面的元素
  1097. \*
  1098. \* @param key
  1099. \* @param cursor
  1100. \* @return
  1101. \*/
  1102. ScanResult<String> sscan(final String key, final String cursor);
  1103. /\*\*
  1104. \* 迭代zset里面的元素
  1105. \*
  1106. \* @param key
  1107. \* @param cursor
  1108. \* @return
  1109. \*/
  1110. ScanResult<Tuple> zscan(final String key, final String cursor);

}

发表评论

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

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

相关阅读

    相关 Java接口详解

    接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。 > 电脑的USB口上,可以插:U盘,鼠标,键盘等所有符合USB协议的设