package com.lml.redis;

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 RedisDBHelper {
Jedis js = null;
private String host = "127.0.0.1";
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;
}
}
}

java连接redis中的数据查、增、改、删操作的方法的更多相关文章

  1. DataFrame查增改删

    DataFrame查增改删 查 Read 类list/ndarray数据访问方式 dates = pd.date_range(',periods=10) dates df = pd.DataFrame ...

  2. js 属性增改删操作

    js 属性增改删操作,可参看菜鸟教程,这里记录一个小问题:disabled属性 使用setAttribute操作无法 禁用disabled属性,需使用removeAttribute操作,原因是只要有d ...

  3. XML简单的增改删操作

    XML文件的简单增改删,每一个都可以单独拿出来使用. 新创建XML文件,<?xmlversion="1.0"encoding="utf-8"?> & ...

  4. java 向Redis中存放数据 List<Device>转String

    /** * redis服务 */ @Autowired private RedisService redisService; //创建 Device  对象 Device no = new Devic ...

  5. Oracle数据库,数据的增、删、改、查

    oracle数据库中,数据的增.删.改.查,通过SQL语句实现 SQL:结构化查询语言: 特点:不区分大小写:字符串用单引号引起来:语句结束用分号表示结束: 行注释,在语句的最前面加"--& ...

  6. Android(java)学习笔记186:对ListView等列表组件中数据进行增、删、改操作

    1.ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V:  view  (显示的视图) C: controller 控制器 入门案例: acit ...

  7. Android(java)学习笔记129:对ListView等列表组件中数据进行增、删、改操作

    1. ListView介绍 解决大量的相似的数据显示问题 采用了MVC模式: M: model (数据模型) V:  view  (显示的视图) C: controller 控制器 入门案例: aci ...

  8. Delphi - cxGrid连接Oracle数据库 实现数据的增删改查

    cxGrid连接Oracle数据库 实现数据的增删改查 cxGrid连接Oracle数据库 1:通过OraSession连接数据库.OraDataSet实现OraSession和OraDataSour ...

  9. pythone函数基础(12)连接Redis,写数据,读数据,修改数据

    需要导入Resdis模块 import redisip = '127.0.0.1'password='123456'r = redis.Redis(host=ip,password=password, ...

随机推荐

  1. Web应急:网站被批量挂黑页

    作为一个网站管理员,你采用开源CMS做网站,比如dedecms,但是有一天,你忽然发现不知何时,网站的友情链接模块被挂大量垃圾链接,网站出现了很多不该有的目录,里面全是博彩相关的网页.而且,攻击者在挂 ...

  2. WPF程序集资源

    WPF会将引用到的资源如图片.BAML文件等编译成二进制数据嵌入到已经编译了的程序集中. 下图是一个反编译后的程序目录结构: 那么,如何向项目中添加资源? 向项目中添加文件 设置生成操作(Build ...

  3. Python - 基本数据类型 - 第二天

    Python3 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...

  4. 3-awk

    1.输出双引号:awk '{print "\""}'        #放大:awk '{print "  \"  "}'使用“”双引号把一个 ...

  5. Python常用模块大全(转)

    os模块:os.remove() 删除文件 os.unlink() 删除文件 os.rename() 重命名文件 os.listdir() 列出指定目录下所有文件 os.chdir() 改变当前工作目 ...

  6. SpringMVC拦截器执行流程

    1:MyInterceptor1.MyInterceptor2这2个拦截器都放行 MyInterceptor1......preHandleMyInterceptor2......preHandle ...

  7. 隐马尔科夫模型(Hidden Markov Models) 系列之一

    转自:http://blog.csdn.net/eaglex/article/details/6376826 介绍(introduction) 通常我们总是对寻找某一段时间上的模式感兴趣,这些模式可能 ...

  8. 某安全设备未授权访问+任意文件下载0day

    具体是哪家就不说了,硬件盒子,主要检测病毒. payload如下: https://xxx.xxx.xxx.xxx/downTxtFile.php?filename=/etc/passwd 比较简单, ...

  9. django rest_framework vue 实现用户登录

    django rest_framework vue 实现用户登录 后端代码就不介绍了,可以参考  django rest_framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 ...

  10. MySQL 重要参数 innodb_flush_log_at_trx_commit 和 sync_binlog

    innodb_flush_log_at_trx_commit 主要控制了innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,取值分别为0.1.2三个.该参数控制重做日志写入 ...