java单机操作redis3.2.10和集群操作增删改查
先直接附上单机版的连接和增删改查,7000-7005是端口号
package com.yilian.util;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import redis.clients.jedis.Jedis;
public class RedisTest {
Jedis js = null;
private String host = "101.236.39.141";
private int port = 6379; /**
* 链接redis数据库,进行初始化
*
* @param hostUrl:链接服务器的ip/名称
* @param hostPort:主机的端口号
* @return:返回是否初始化链接成功
*/
public boolean init(String host, int port) {
if (js == null) {
js = new Jedis(host, port);
}
if (js != null) {
System.out.println("初始化成功");
return true;
} else {
return false;
}
} /**
* 链接redis数据库,进行初始化
*
* @param host:链接服务器的ip/名称
* @return:返回是否初始化链接成功
*/
public boolean init(String host) {
if (js == null) {
js = new Jedis(host);
}
if (js != null) {
System.out.println("初始化成功");
return true;
} else {
return false;
}
} /**
* 新增数据
*
* @param key:新增数据的键
* @param value:新增数据的值
* @return:返回boolean值,表示是否新增数据成功
*/
public boolean set(String key, String value) { if (js.exists(key)) {
System.out.println(key + "已存在");
System.out.println("若要修改数据请使用update()方法");
return false;
} else {
js.set(key, value);
if (js.exists(key)) {
if (value.equals(js.get(key))) {
System.out.println("增加数据成功");
return true;
} else {
System.out.println("增加数据失败");
return false;
}
} else {
System.out.println("增加数据失败");
return false;
}
}
} /**
* 添加多条数据
*
* @param map:放置多条数据的键值对集合
* @return:返回boolean值,表示是否新增数据全部成功
*/
public boolean sets(Map<String, String> map) {
boolean sets = true;
for (Entry<String, String> e : map.entrySet()) {
String key = e.getKey();
String value = e.getValue();
boolean set = set(key, value);
if (!set) {
sets = false;
}
}
return sets;
} /**
* 删除数据
*
* @param key:要删除数据的key
* @return:返回boolean值,表示是否删除成功
*/
public boolean delete(String key) { if (js.exists(key)) {
if (js.del(key) == 1) {
System.out.println("删除数据成功");
return true;
} else {
System.out.println("删除数据失败");
return false;
}
} else {
System.out.println(key + "不存在");
return false;
}
} /**
* 删除一组数据
*
* @param keys:要删除数据键集合
* @return:返回boolean值,表示是否全部删除成功
*/
public boolean deletes(String[] keys) {
boolean deletes = true;
for (String key : keys) {
boolean delete = delete(key);
if (!delete) {
deletes = false;
}
}
return deletes;
} /**
* 修改数据
*
* @param key:要修改数据的key
* @param value:要修改数据的值
* @return:返回boolean值,表示是否修改成功
*/
public boolean update(String key, String value) {
if (js.exists(key)) {
js.set(key, value);
if (value.equals(js.get(key))) {
System.out.println("修改数据成功");
return true;
} else {
System.out.println("修改数据失败");
return false;
}
} else {
System.out.println(key + "不存在");
System.out.println("若要新增数据请使用set()方法");
return false;
}
} /**
* 获取表中数据
*
* @param key:要查询的key
* @return:返回查找到的数据;如果键不存在则返回null;
*/
public String get(String key) {
if (js.exists(key)) {
System.out.println(js.get(key));
return js.get(key);
} else {
System.out.println(key + "不存在");
return null;
}
}
/**
* 获取多条key的值
* @param keys:多条key的集合
* @return
*/
public Map<String, String> gets(String[] keys) {
Map<String, String> map = new HashMap<String, String>();
for (String key : keys) {
if (js.exists(key)) {
String value = js.get(key);
map.put(key, value);
System.out.println(key + "-" + value);
} else {
System.out.println(key + "不存在");
}
}
return map;
} /**
* 获得所有数据的键
*/
public void getKeys() {
Set<String> set = js.keys("*");
if (set.size() != 0) {
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key);
}
} else {
System.out.println("数据库暂时没有数据");
}
} /**
* 查询所有数据
*/
public void getAll() {
Set<String> set = js.keys("*");
if (set.size() != 0) {
Iterator<String> it = set.iterator();
while (it.hasNext()) {
String key = it.next();
String value = js.get(key);
System.out.println(key + "-" + value);
}
} else {
System.out.println("数据库暂时没有数据");
}
} /**
* 关闭链接
*/
public void unInit() {
if (js != null) {
js.close();
js = null;
}
} public static void main(String[] args) {
RedisTest re=new RedisTest();
re.init("101.236.39.141", 7000);
re.set("11", "2");
re.get("11");
}
}
集群操作,它会自己按照节点去分发
package com.yilian.util;
import java.util.HashSet;
import java.util.Set; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
public class ClusterDemo {
private static JedisCluster jedisCluster=null;
private static Set<HostAndPort> hostAndPorts=null; public static Set<HostAndPort> getHostAndPort(String hostAndPort){
Set<HostAndPort> hap = new HashSet<HostAndPort>();
String[] hosts = hostAndPort.split(",");
String[] hs = null;
for(String host:hosts){
hs=host.split(":");
hap.add(new HostAndPort(hs[0], Integer.parseInt(hs[1])));
}
return hap;
} public boolean set(String key, String value) {
if (jedisCluster.exists(key)) {
System.out.println(key + "已存在");
System.out.println("若要修改数据请使用update()方法");
return false;
} else {
jedisCluster.set(key, value);
if (jedisCluster.exists(key)) {
if (value.equals(jedisCluster.get(key))) {
System.out.println("增加数据成功");
return true;
} else {
System.out.println("增加数据失败");
return false;
}
} else {
System.out.println("增加数据失败");
return false;
}
}
} public static JedisCluster getJedisCluster(){
GenericObjectPoolConfig gopc = new GenericObjectPoolConfig();
gopc.setMaxTotal(32);
gopc.setMaxIdle(4);
gopc.setMaxWaitMillis(6000);
hostAndPorts = getHostAndPort("101.236.39.141:7000");
hostAndPorts = getHostAndPort("101.236.39.141:7003");
hostAndPorts = getHostAndPort("101.236.46.113:7001");
hostAndPorts = getHostAndPort("101.236.46.113:7004");
hostAndPorts = getHostAndPort("101.236.46.114:7002");
hostAndPorts = getHostAndPort("101.236.46.114:7005");
jedisCluster = new JedisCluster(hostAndPorts,gopc);
return jedisCluster;
} public static void main(String[] args) {
jedisCluster = getJedisCluster();
System.out.println(jedisCluster.get("11"));
System.out.println(jedisCluster.get("12"));
ClusterDemo d=new ClusterDemo();
d.set("14", "4");
// jedisCluster.set("11", "2");
} }
java单机操作redis3.2.10和集群操作增删改查的更多相关文章
- python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查
python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...
- 【良心保姆级教程】java手把手教你用swing写一个学生的增删改查模块
很多刚入门的同学,不清楚如何用java.swing去开发出一个系统? 不清楚如何使用java代码去操作数据库进行增删改查一些列操作,不清楚java代码和数据库(mysql.sqlserver)之间怎么 ...
- 【温故知新】Java web 开发(四)JSTL 与 JDBC 的增删改查
本篇开始使用 jstl 这个 jsp 的标签库,在同一个 Servlet 中实现处理 CRUD 请求,以及使用 jdbc 数据库基本操作.然后你会发现 Servlet 和 jdbc 还是有很多不方便之 ...
- java连接sql server--关于登录验证及对数据库增删改查应用
一:步骤## 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server ...
- 用Java中的File类模拟实现对系统文件的增删改查效果
码字不易,三连支持一波吧 IO操作向来是各大语言的热区,而对文件的操作也是重中之重. 那么在Java中也给我们提供了很多关于文件操作的类.今天我就用一个比较基本的File类来模拟实现对文件的增删改查效 ...
- python web.py操作mysql数据库,实现对数据库的增删改查操作
使用web.py框架,实现对mysql数据库的增删改查操作: 该示例代码中连接的是本地数据库testdb,user表,表结构比较简单,只有两个字段:mobile和passwd,类型均为字符型 实际应用 ...
- 1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数
检查集群健康状态,可以看集群颜色.(黄色:primary shard都正常,replica不正常) GET /_cat/health?v 列出集群所有index GET /_cat/indices?v ...
- Java用户名登录学生信息管理系统并对其进行增删改查操作
package zzzzzzzz; import java.io.*;//作者:凯鲁嘎吉 - 博客园//http://www.cnblogs.com/kailugaji/ public class T ...
- mysql详解常用命令操作,利用SQL语句创建数据表—增删改查
关系型数据库的核心内容是 关系 即 二维表 MYSQL的启动和连接show variables; [所有的变量] 1服务端启动 查看服务状态 sudo /etc/init.d/mysql status ...
随机推荐
- JDBC事务控制管理(转载)
JDBC事务控制管理 转载于 2018年01月26日 15:46:11 1.事务 (1)事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐, ...
- v-text、v-html、v-cloak、v-pre.md
本篇文章,我们简单的介绍几个Vue内置指令的实现. v-text v-text的用法很简单,以下两个表达式的作用相同. <span v-text="msg"></ ...
- PyQt5编程:鼠标事件
参考链接:https://www.cnblogs.com/zhuluqing/p/9028816.html 一.每个事件都被封装成相应的类: pyqt中,每个事件类型都被封装成相应的事件类,如鼠标事件 ...
- Dll封装dll,并且调用该封装的dll
按照图1,2,3创建一个默认的(可以导出符号的dll项目) 默认创建的,很好地给我们说明了怎么导出 变量,导出函数,导出类 注意这里加入你要导出的函数的声明 WIN32PROJECT1_API int ...
- 炸掉你的城堡!(pygame獾兔大战)
代码修改bug,添加注释等,獾的速度加快之后很难-- git地址: https://github.com/Jailman/blowupyrcastle.git 游戏资源使用了文章中附带的下载,原版文章 ...
- UI基础:UI程序执行顺序(UIApplicationMain()函数),自定义视图 分类: iOS学习-UI 2015-07-02 22:09 68人阅读 评论(0) 收藏
UI程序的一般执行顺序: 先进入main里面,执行函数UIApplicationMain(),通过该函数创建应用程序对象和指定其代理并实现监听,当执行函数UIApplicationMain()时还会做 ...
- tensorflow中常用学习率更新策略
神经网络训练过程中,根据每batch训练数据前向传播的结果,计算损失函数,再由损失函数根据梯度下降法更新每一个网络参数,在参数更新过程中使用到一个学习率(learning rate),用来定义每次参数 ...
- matlab repmat()
一.B = repmat(A,m,n) 将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成.B 的维数是 [size(A,1)*m, size(A,2)*n] ...
- opencv-原图基础上添加指定颜色
前言 项目中需要将某些区域使用不同的颜色表示出来,同时能够看到原图作为底色. 代码 #include "opencv2/highgui/highgui.hpp" #include ...
- HTML结构组成
1. 文档的类型声明 <!doctype html> h5的声明方式 作用 : 告诉浏览器当前使用的HTML版本,以便浏览器能正确解析HTML标签和渲染样式 书写位置 : 文档最开始位置 ...