先直接附上单机版的连接和增删改查,7000-7005是端口号

  1. package com.yilian.util;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6. import java.util.Set;
  7.  
  8. import redis.clients.jedis.Jedis;
  9. public class RedisTest {
  10. Jedis js = null;
  11. private String host = "101.236.39.141";
  12. private int port = 6379;
  13.  
  14. /**
  15. * 链接redis数据库,进行初始化
  16. *
  17. * @param hostUrl:链接服务器的ip/名称
  18. * @param hostPort:主机的端口号
  19. * @return:返回是否初始化链接成功
  20. */
  21. public boolean init(String host, int port) {
  22. if (js == null) {
  23. js = new Jedis(host, port);
  24. }
  25. if (js != null) {
  26. System.out.println("初始化成功");
  27. return true;
  28. } else {
  29. return false;
  30. }
  31. }
  32.  
  33. /**
  34. * 链接redis数据库,进行初始化
  35. *
  36. * @param host:链接服务器的ip/名称
  37. * @return:返回是否初始化链接成功
  38. */
  39. public boolean init(String host) {
  40. if (js == null) {
  41. js = new Jedis(host);
  42. }
  43. if (js != null) {
  44. System.out.println("初始化成功");
  45. return true;
  46. } else {
  47. return false;
  48. }
  49. }
  50.  
  51. /**
  52. * 新增数据
  53. *
  54. * @param key:新增数据的键
  55. * @param value:新增数据的值
  56. * @return:返回boolean值,表示是否新增数据成功
  57. */
  58. public boolean set(String key, String value) {
  59.  
  60. if (js.exists(key)) {
  61. System.out.println(key + "已存在");
  62. System.out.println("若要修改数据请使用update()方法");
  63. return false;
  64. } else {
  65. js.set(key, value);
  66. if (js.exists(key)) {
  67. if (value.equals(js.get(key))) {
  68. System.out.println("增加数据成功");
  69. return true;
  70. } else {
  71. System.out.println("增加数据失败");
  72. return false;
  73. }
  74. } else {
  75. System.out.println("增加数据失败");
  76. return false;
  77. }
  78. }
  79. }
  80.  
  81. /**
  82. * 添加多条数据
  83. *
  84. * @param map:放置多条数据的键值对集合
  85. * @return:返回boolean值,表示是否新增数据全部成功
  86. */
  87. public boolean sets(Map<String, String> map) {
  88. boolean sets = true;
  89. for (Entry<String, String> e : map.entrySet()) {
  90. String key = e.getKey();
  91. String value = e.getValue();
  92. boolean set = set(key, value);
  93. if (!set) {
  94. sets = false;
  95. }
  96. }
  97. return sets;
  98. }
  99.  
  100. /**
  101. * 删除数据
  102. *
  103. * @param key:要删除数据的key
  104. * @return:返回boolean值,表示是否删除成功
  105. */
  106. public boolean delete(String key) {
  107.  
  108. if (js.exists(key)) {
  109. if (js.del(key) == 1) {
  110. System.out.println("删除数据成功");
  111. return true;
  112. } else {
  113. System.out.println("删除数据失败");
  114. return false;
  115. }
  116. } else {
  117. System.out.println(key + "不存在");
  118. return false;
  119. }
  120. }
  121.  
  122. /**
  123. * 删除一组数据
  124. *
  125. * @param keys:要删除数据键集合
  126. * @return:返回boolean值,表示是否全部删除成功
  127. */
  128. public boolean deletes(String[] keys) {
  129. boolean deletes = true;
  130. for (String key : keys) {
  131. boolean delete = delete(key);
  132. if (!delete) {
  133. deletes = false;
  134. }
  135. }
  136. return deletes;
  137. }
  138.  
  139. /**
  140. * 修改数据
  141. *
  142. * @param key:要修改数据的key
  143. * @param value:要修改数据的值
  144. * @return:返回boolean值,表示是否修改成功
  145. */
  146. public boolean update(String key, String value) {
  147. if (js.exists(key)) {
  148. js.set(key, value);
  149. if (value.equals(js.get(key))) {
  150. System.out.println("修改数据成功");
  151. return true;
  152. } else {
  153. System.out.println("修改数据失败");
  154. return false;
  155. }
  156. } else {
  157. System.out.println(key + "不存在");
  158. System.out.println("若要新增数据请使用set()方法");
  159. return false;
  160. }
  161. }
  162.  
  163. /**
  164. * 获取表中数据
  165. *
  166. * @param key:要查询的key
  167. * @return:返回查找到的数据;如果键不存在则返回null;
  168. */
  169. public String get(String key) {
  170. if (js.exists(key)) {
  171. System.out.println(js.get(key));
  172. return js.get(key);
  173. } else {
  174. System.out.println(key + "不存在");
  175. return null;
  176. }
  177. }
  178. /**
  179. * 获取多条key的值
  180. * @param keys:多条key的集合
  181. * @return
  182. */
  183. public Map<String, String> gets(String[] keys) {
  184. Map<String, String> map = new HashMap<String, String>();
  185. for (String key : keys) {
  186. if (js.exists(key)) {
  187. String value = js.get(key);
  188. map.put(key, value);
  189. System.out.println(key + "-" + value);
  190. } else {
  191. System.out.println(key + "不存在");
  192. }
  193. }
  194. return map;
  195. }
  196.  
  197. /**
  198. * 获得所有数据的键
  199. */
  200. public void getKeys() {
  201. Set<String> set = js.keys("*");
  202. if (set.size() != 0) {
  203. Iterator<String> it = set.iterator();
  204. while (it.hasNext()) {
  205. String key = it.next();
  206. System.out.println(key);
  207. }
  208. } else {
  209. System.out.println("数据库暂时没有数据");
  210. }
  211. }
  212.  
  213. /**
  214. * 查询所有数据
  215. */
  216. public void getAll() {
  217. Set<String> set = js.keys("*");
  218. if (set.size() != 0) {
  219. Iterator<String> it = set.iterator();
  220. while (it.hasNext()) {
  221. String key = it.next();
  222. String value = js.get(key);
  223. System.out.println(key + "-" + value);
  224. }
  225. } else {
  226. System.out.println("数据库暂时没有数据");
  227. }
  228. }
  229.  
  230. /**
  231. * 关闭链接
  232. */
  233. public void unInit() {
  234. if (js != null) {
  235. js.close();
  236. js = null;
  237. }
  238. }
  239.  
  240. public static void main(String[] args) {
  241. RedisTest re=new RedisTest();
  242. re.init("101.236.39.141", 7000);
  243. re.set("11", "2");
  244. re.get("11");
  245. }
  246. }

集群操作,它会自己按照节点去分发

  1. package com.yilian.util;
  2. import java.util.HashSet;
  3. import java.util.Set;
  4.  
  5. import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
  6.  
  7. import redis.clients.jedis.HostAndPort;
  8. import redis.clients.jedis.JedisCluster;
  9. public class ClusterDemo {
  10. private static JedisCluster jedisCluster=null;
  11. private static Set<HostAndPort> hostAndPorts=null;
  12.  
  13. public static Set<HostAndPort> getHostAndPort(String hostAndPort){
  14. Set<HostAndPort> hap = new HashSet<HostAndPort>();
  15. String[] hosts = hostAndPort.split(",");
  16. String[] hs = null;
  17. for(String host:hosts){
  18. hs=host.split(":");
  19. hap.add(new HostAndPort(hs[0], Integer.parseInt(hs[1])));
  20. }
  21. return hap;
  22. }
  23.  
  24. public boolean set(String key, String value) {
  25. if (jedisCluster.exists(key)) {
  26. System.out.println(key + "已存在");
  27. System.out.println("若要修改数据请使用update()方法");
  28. return false;
  29. } else {
  30. jedisCluster.set(key, value);
  31. if (jedisCluster.exists(key)) {
  32. if (value.equals(jedisCluster.get(key))) {
  33. System.out.println("增加数据成功");
  34. return true;
  35. } else {
  36. System.out.println("增加数据失败");
  37. return false;
  38. }
  39. } else {
  40. System.out.println("增加数据失败");
  41. return false;
  42. }
  43. }
  44. }
  45.  
  46. public static JedisCluster getJedisCluster(){
  47. GenericObjectPoolConfig gopc = new GenericObjectPoolConfig();
  48. gopc.setMaxTotal(32);
  49. gopc.setMaxIdle(4);
  50. gopc.setMaxWaitMillis(6000);
  51. hostAndPorts = getHostAndPort("101.236.39.141:7000");
  52. hostAndPorts = getHostAndPort("101.236.39.141:7003");
  53. hostAndPorts = getHostAndPort("101.236.46.113:7001");
  54. hostAndPorts = getHostAndPort("101.236.46.113:7004");
  55. hostAndPorts = getHostAndPort("101.236.46.114:7002");
  56. hostAndPorts = getHostAndPort("101.236.46.114:7005");
  57. jedisCluster = new JedisCluster(hostAndPorts,gopc);
  58. return jedisCluster;
  59. }
  60.  
  61. public static void main(String[] args) {
  62. jedisCluster = getJedisCluster();
  63. System.out.println(jedisCluster.get("11"));
  64. System.out.println(jedisCluster.get("12"));
  65. ClusterDemo d=new ClusterDemo();
  66. d.set("14", "4");
  67. // jedisCluster.set("11", "2");
  68. }
  69.  
  70. }

java单机操作redis3.2.10和集群操作增删改查的更多相关文章

  1. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  2. 【良心保姆级教程】java手把手教你用swing写一个学生的增删改查模块

    很多刚入门的同学,不清楚如何用java.swing去开发出一个系统? 不清楚如何使用java代码去操作数据库进行增删改查一些列操作,不清楚java代码和数据库(mysql.sqlserver)之间怎么 ...

  3. 【温故知新】Java web 开发(四)JSTL 与 JDBC 的增删改查

    本篇开始使用 jstl 这个 jsp 的标签库,在同一个 Servlet 中实现处理 CRUD 请求,以及使用 jdbc 数据库基本操作.然后你会发现 Servlet 和 jdbc 还是有很多不方便之 ...

  4. java连接sql server--关于登录验证及对数据库增删改查应用

    一:步骤## 1.sql server建立数据库和相关表 2.建立数据源  (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源  (2).打开数据源配置后点击添加,选择sql server ...

  5. 用Java中的File类模拟实现对系统文件的增删改查效果

    码字不易,三连支持一波吧 IO操作向来是各大语言的热区,而对文件的操作也是重中之重. 那么在Java中也给我们提供了很多关于文件操作的类.今天我就用一个比较基本的File类来模拟实现对文件的增删改查效 ...

  6. python web.py操作mysql数据库,实现对数据库的增删改查操作

    使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...

  7. 1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数

    检查集群健康状态,可以看集群颜色.(黄色:primary shard都正常,replica不正常) GET /_cat/health?v 列出集群所有index GET /_cat/indices?v ...

  8. Java用户名登录学生信息管理系统并对其进行增删改查操作

    package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...

  9. mysql详解常用命令操作,利用SQL语句创建数据表—增删改查

    关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status ...

随机推荐

  1. oracle主从表主外键对应关系

    一.首先让我们来了解下什么是主外键? 1.主键:唯一标识数据表中的某一行 1) 一个表中只能有一个主键.如果在其他字段上建立主键,则原来的主键就会取消.在ACCESS中,虽然主键不是必需的,但最好为每 ...

  2. Ubuntu:系统启动服务

    系统启动服务 针对Ubuntu 5级别服务的说明 安装sysv-rc-conf sudo apt-get install sysv-rc-conf acpi-support 高级电源管理支持 acpi ...

  3. ROS功能包- rrt_exploration

    一种基于RRT实现的多机器人地图探测算法的ROS软件包. 它还具有使用图像处理提取边界点.基于图像的边界检测等功能. 适用版本:indigo.jade.kinetic.lunar. 注意事项:官网文档 ...

  4. .NET 中使用 Mutex 进行跨越进程边界的同步

    Mutex 是 Mutual Exclusion 的缩写,是互斥锁,用于防止两个线程同时对计算机上的同一个资源进行访问.不过相比于其他互斥的方式,Mutex 能够跨越线程边界. 本文内容 Mutex ...

  5. 《DSP using MATLAB》Problem 3.5

    定义为: 如果序列绝对可和,其DTFT就存在.

  6. 使用migration创建表时,出错的解决方法

    Laravel 5.4 migrate时报错: Specified key was too long error 解决问题升级MySql版本到5.5.3以上. 手动配置迁移命令migrate生成的默认 ...

  7. MySQL · 特性分析 · 优化器 MRR & BKA【转】

    MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...

  8. centos7虚拟机安装出现license information

    问题:vm 10下安装CentOs7后无法启动.出现一个license information页面 解决办法:出现license information,即说明需要同意许可信息,输入1-回车-2-回车 ...

  9. C#继承基本控件实现自定义控件 (转帖)

    自定义控件分三类: 1.复合控件:基本控件组合而成.继承自UserControl 2.扩展控件:继承基本控件,扩展一些属性与事件.比如继承Button 3.自定义控件:直接继承自Control 第一种 ...

  10. FineUI4.0以后如何调用JS事件

    F.ready(function() { // 你的代码 }); F.ready(function () {            var searchClientID = '<%= TextB ...