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 ...
随机推荐
- oracle主从表主外键对应关系
一.首先让我们来了解下什么是主外键? 1.主键:唯一标识数据表中的某一行 1) 一个表中只能有一个主键.如果在其他字段上建立主键,则原来的主键就会取消.在ACCESS中,虽然主键不是必需的,但最好为每 ...
- Ubuntu:系统启动服务
系统启动服务 针对Ubuntu 5级别服务的说明 安装sysv-rc-conf sudo apt-get install sysv-rc-conf acpi-support 高级电源管理支持 acpi ...
- ROS功能包- rrt_exploration
一种基于RRT实现的多机器人地图探测算法的ROS软件包. 它还具有使用图像处理提取边界点.基于图像的边界检测等功能. 适用版本:indigo.jade.kinetic.lunar. 注意事项:官网文档 ...
- .NET 中使用 Mutex 进行跨越进程边界的同步
Mutex 是 Mutual Exclusion 的缩写,是互斥锁,用于防止两个线程同时对计算机上的同一个资源进行访问.不过相比于其他互斥的方式,Mutex 能够跨越线程边界. 本文内容 Mutex ...
- 《DSP using MATLAB》Problem 3.5
定义为: 如果序列绝对可和,其DTFT就存在.
- 使用migration创建表时,出错的解决方法
Laravel 5.4 migrate时报错: Specified key was too long error 解决问题升级MySql版本到5.5.3以上. 手动配置迁移命令migrate生成的默认 ...
- MySQL · 特性分析 · 优化器 MRR & BKA【转】
MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...
- centos7虚拟机安装出现license information
问题:vm 10下安装CentOs7后无法启动.出现一个license information页面 解决办法:出现license information,即说明需要同意许可信息,输入1-回车-2-回车 ...
- C#继承基本控件实现自定义控件 (转帖)
自定义控件分三类: 1.复合控件:基本控件组合而成.继承自UserControl 2.扩展控件:继承基本控件,扩展一些属性与事件.比如继承Button 3.自定义控件:直接继承自Control 第一种 ...
- FineUI4.0以后如何调用JS事件
F.ready(function() { // 你的代码 }); F.ready(function () { var searchClientID = '<%= TextB ...