先启动  redis-server /etc/redis/redis.conf

  1. package com.test;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Set;
  7.  
  8. import redis.clients.jedis.Jedis;
  9. import redis.clients.jedis.JedisPool;
  10. import redis.clients.jedis.JedisPoolConfig;
  11. import redis.clients.jedis.JedisShardInfo;
  12. import redis.clients.jedis.ShardedJedis;
  13. import redis.clients.jedis.ShardedJedisPool;
  14.  
  15. /**
  16. *
  17. * @author luozhonghua
  18. *
  19. */
  20. public class RedisClient {
  21.  
  22. private Jedis jedis;// 非切片额客户端连接
  23. private JedisPool jedisPool;// 非切片连接池
  24. private ShardedJedis shardedJedis;// 切片额客户端连接
  25. private ShardedJedisPool shardedJedisPool;// 切片连接池
  26.  
  27. public RedisClient() {
  28. initialPool();
  29. initialShardedPool();
  30. shardedJedis = shardedJedisPool.getResource();
  31. jedis = jedisPool.getResource();
  32.  
  33. }
  34.  
  35. /**
  36. * 初始化非切片池
  37. */
  38. private void initialPool() {
  39. // 池基本配置
  40. JedisPoolConfig config = new JedisPoolConfig();
  41.  
  42. config.setMaxActive(20);
  43. config.setMaxIdle(5);
  44. config.setMaxWait(1000l);
  45. config.setTestOnBorrow(false);
  46. System.out.println("begin...");
  47. jedisPool = new JedisPool(config, "127.0.0.1", 6379);
  48. System.out.println("end...");
  49. }
  50.  
  51. /**
  52. * 初始化切片池
  53. */
  54. private void initialShardedPool() {
  55. // 池基本配置
  56. JedisPoolConfig config = new JedisPoolConfig();
  57. config.setMaxActive(20);
  58. config.setMaxIdle(5);
  59. config.setMaxWait(1000l);
  60. config.setTestOnBorrow(false);
  61. // slave链接
  62. List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
  63. shards.add(new JedisShardInfo("127.0.0.1", 6379, "master"));
  64.  
  65. // 构造池
  66. shardedJedisPool = new ShardedJedisPool(config, shards);
  67. }
  68.  
  69. public void show() {
  70. KeyOperate();
  71. StringOperate();
  72. ListOperate();
  73. SetOperate();
  74. SortedSetOperate();
  75. HashOperate();
  76. jedisPool.returnResource(jedis);
  77. shardedJedisPool.returnResource(shardedJedis);
  78. }
  79.  
  80. private void KeyOperate() {
  81.  
  82. System.out.println("======================key==========================");
  83. // 清空数据
  84. System.out.println("清空库中全部数据:"+jedis.flushDB());
  85. // 推断key否存在
  86. System.out.println("推断key999键是否存在:"+shardedJedis.exists("key999"));
  87. System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001"));
  88. System.out.println("推断key001是否存在:"+shardedJedis.exists("key001"));
  89. // 输出系统中全部的key
  90. System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
  91. System.out.println("系统中全部键例如以下:");
  92. Set<String> keys = jedis.keys("*");
  93. Iterator<String> it=keys.iterator() ;
  94. while(it.hasNext()){
  95. String key = it.next();
  96. System.out.println(key);
  97. }
  98. // 删除某个key,若key不存在。则忽略该命令。
  99. System.out.println("系统中删除key002: "+jedis.del("key002"));
  100. System.out.println("推断key002是否存在:"+shardedJedis.exists("key002"));
  101. // 设置 key001的过期时间
  102. System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
  103. try{
  104. Thread.sleep(2000);
  105. }
  106. catch (InterruptedException e){
  107. }
  108. // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
  109. System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
  110. // 移除某个key的生存时间
  111. System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
  112. System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
  113. // 查看key所储存的值的类型
  114. System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
  115. /*
  116. * 一些其它方法:1、改动键名:jedis.rename("key6", "key0");
  117. * 2、将当前db的key移动到给定的db其中:jedis.move("foo", 1)
  118. */
  119.  
  120. }
  121. private void StringOperate()
  122. {
  123. System.out.println("======================String_1==========================");
  124. // 清空数据
  125. System.out.println("清空库中全部数据:"+jedis.flushDB());
  126.  
  127. System.out.println("=============增=============");
  128. jedis.set("key001","value001");
  129. jedis.set("key002","value002");
  130. jedis.set("key003","value003");
  131. System.out.println("已新增的3个键值对例如以下:");
  132. System.out.println(jedis.get("key001"));
  133. System.out.println(jedis.get("key002"));
  134. System.out.println(jedis.get("key003"));
  135.  
  136. System.out.println("=============删=============");
  137. System.out.println("删除key003键值对:"+jedis.del("key003"));
  138. System.out.println("获取key003键相应的值:"+jedis.get("key003"));
  139.  
  140. System.out.println("=============改=============");
  141. //1、直接覆盖原来的数据
  142. System.out.println("直接覆盖key001原来的数据:"+jedis.set("key001","value001-update"));
  143. System.out.println("获取key001相应的新值:"+jedis.get("key001"));
  144. //2、直接覆盖原来的数据
  145. System.out.println("在key002原来值后面追加:"+jedis.append("key002","+appendString"));
  146. System.out.println("获取key002相应的新值"+jedis.get("key002"));
  147.  
  148. System.out.println("=============增,删,查(多个)=============");
  149. /**
  150. * mset,mget同一时候新增,改动。查询多个键值对
  151. * 等价于:
  152. * jedis.set("name","ssss");
  153. * jedis.set("jarorwar","xxxx");
  154. */
  155. System.out.println("一次性新增key201,key202,key203,key204及其相应值:"+jedis.mset("key201","value201",
  156. "key202","value202","key203","value203","key204","value204"));
  157. System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
  158. jedis.mget("key201","key202","key203","key204"));
  159. System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
  160. System.out.println("一次性获取key201,key202,key203,key204各自相应的值:"+
  161. jedis.mget("key201","key202","key203","key204"));
  162. System.out.println();
  163.  
  164. //jedis具备的功能shardedJedis中也可直接使用。以下測试一些前面没用过的方法
  165. System.out.println("======================String_2==========================");
  166. // 清空数据
  167. System.out.println("清空库中全部数据:"+jedis.flushDB());
  168.  
  169. System.out.println("=============新增键值对时防止覆盖原先值=============");
  170. System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301"));
  171. System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302"));
  172. System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));
  173. System.out.println("获取key301相应的值:"+shardedJedis.get("key301"));
  174. System.out.println("获取key302相应的值:"+shardedJedis.get("key302"));
  175.  
  176. System.out.println("=============超过有效期键值对被删除=============");
  177. // 设置key的有效期,并存储数据
  178. System.out.println("新增key303。并指定过期时间为2秒"+shardedJedis.setex("key303", 2, "key303-2second"));
  179. System.out.println("获取key303相应的值:"+shardedJedis.get("key303"));
  180. try{
  181. Thread.sleep(3000);
  182. }
  183. catch (InterruptedException e){
  184. }
  185. System.out.println("3秒之后。获取key303相应的值:"+shardedJedis.get("key303"));
  186.  
  187. System.out.println("=============获取原值,更新为新值一步完毕=============");
  188. System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
  189. System.out.println("key302新值:"+shardedJedis.get("key302"));
  190.  
  191. System.out.println("=============获取子串=============");
  192. System.out.println("获取key302相应值中的子串:"+shardedJedis.getrange("key302", 5, 7));
  193. }
  194.  
  195. private void ListOperate() {
  196.  
  197. }
  198.  
  199. private void SetOperate() {
  200.  
  201. }
  202.  
  203. private void SortedSetOperate() {
  204.  
  205. }
  206.  
  207. private void HashOperate() {
  208.  
  209. }
  210.  
  211. public static void main(String[]args){
  212. new RedisClient().show();
  213. }
  214. }

linux下小试redis demo的更多相关文章

  1. linux 下安装redis以及php Redis扩展

    [php] view plaincopy在CODE上查看代码片派生到我的代码片 linux 下安装redis以及php Redis扩展 环境配置: centos6. nginx/ php/ mysql ...

  2. linux下实现redis共享session的tomcat集群

    为了实现主域名与子域名的下不同的产品间一次登录,到处访问的效果,因此采用rediss实现tomcat的集群效果.基于redis能够异步讲缓存内容固化到磁盘上,从而当服务器意外重启后,仍然能够让sess ...

  3. Linux 下安装 Redis server

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/defonds/article/details/30047611         本文简介了 Linu ...

  4. Linux下配置redis,c#简单调用

    redis比较流行的nosql库: 我这里测试本机window系统,虚拟机安装linux系统,linux系统部署redis,windwo系统,c#调用linux系统的redis 第一步:linux下安 ...

  5. Linux 下安装redis

    记录一下linux下的安装步骤,还是比较复杂的 1. 下载redis-2.8.19.tar.gz: ftp传到linux01上: 解压: tar –zxvf redis-2.8.19.tar.gz 2 ...

  6. Linux下安装Redis及搭建主从

    Linux下安装Redis 首先在官网下载对应版本的redis包,这里本人使用的是redis-4.0.8.tar.gz.   然后在服务器中存放redis包的路径下执行tar –vxf redis-4 ...

  7. 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题

    搭建环境:linux是centos7.4(请注意centos7以下版本的防火墙跟centos7以上的不同,使用redis客户端连接redis时会有区别,建议使用centos7以上版本) 一.下载red ...

  8. Linux下安装redis 3.0及C语言中客户端实现demo

    1.获取安装文件 wget http://download.redis.io/redis-stable.tar.gz 2.解压文件 tar xzvf redis-stable.tar.gz 3.进入目 ...

  9. linux下安装Redis以及phpredis模块

    一:redis的安装 1. 首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载 2. 通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作 3. ...

随机推荐

  1. CSS 的Hack 问题

    1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以 ...

  2. zh-Hans & locales & vs code locale.json

    zh-Hans & locales https://code.visualstudio.com/docs/getstarted/locales https://code.visualstudi ...

  3. GeoIP2 数据库更新地址

    GeoIP2 数据库更新地址 数据库文件下载网页地址 http://dev.maxmind.com/geoip/geoip2/geolite2/ http://geolite.maxmind.com/ ...

  4. AtCoder keyence2019 E Connecting Cities

    keyence2019_e $N$ 个节点的无向图 $G$,节点 $i,j$ 之间的边权值为 $|i - j| \times D + A_i + A_j$ . 求最小生成树(Minimum Spann ...

  5. 省选算法学习-回文自动机 && 回文树

    前置知识 首先你得会manacher,并理解manacher为什么是对的(不用理解为什么它是$O(n)$,这个大概记住就好了,不过理解了更方便做$PAM$的题) 什么是回文自动机? 回文自动机(Pal ...

  6. [bzoj] 1878 HH的项链 || 莫队

    原题 给定长为 n 的一个序列,接下来 m 次询问,每次询问区间 [ l , r ] 内有多少个不同的数. 莫队: 离线\(O(n\log(n))\). 将序列分块. 以左端点所在块为第一关键字,右端 ...

  7. 在AppCode中的razor调用HtmlHelper方法和UrlHelper方法

    原文发布时间为:2011-05-17 -- 来源于本人的百度文章 [由搬家工具导入] 可以写一个帮助类,如下 using System.Web.WebPages;using System.Web.Mv ...

  8. 64位操作系统安装32位客户端和PL/SQL

    PL/SQ只能使用32位的Oracle客户端.在64位系统下安装了64位的oracle 11g,使用PL/SQL需再安装32位Oracle客户端. 按以下方法试验成功: 1)安装32位的Oracle客 ...

  9. Oracle中DBMS_LOB包使用小结

    本文主要介绍oracle数据库中dbms_lob包的使用以及使用dbms_lob包来维护lob数据库类型的基本方法.随着社会的发展,在现代信息系统的开发中,需要存储的已不仅仅是简单的文字信息,同时还包 ...

  10. 原生JavaScript实现jQuery的hasClass,removeClass,addClass,toggleClass

    介绍: 1.hasClass:判断DOM元素是否存在类. 2.addClass:为的DOM元素添加类. 3.removeClass:删除DOM元素的类. 4.toggleClass:如果DOM元素存在 ...