Java封装Redis常用操作
package com.advance.Redis; import org.apache.log4j.Logger;
import org.testng.annotations.Test;
import redis.clients.jedis.Jedis; import java.util.*; /**
* @Author: 谷天乐
* @Date: 2019/2/25 17:17
* @Gratitude: wudalang_gd
* @Description: 根据原生Jedis封装常用工具
*/
public class RedisUtil{
private static Logger logger = Logger.getLogger(RedisUtil.class);
private static final String ip = "localhost";
private static final Integer port = 6379;
//获取连接
public Jedis connection() throws Exception{
Jedis jedis = new Jedis(ip,port);
return jedis;
} //为string添加元素
public void set(String key, String value) throws Exception {
Jedis jedis = connection();
jedis.set(key,value); } //获取string
public String get(String key) throws Exception {
Jedis jedis = connection();
return jedis.get(key);
} //追加string
public void append(String key, String value) throws Exception {
Jedis jedis = connection();
jedis.append(key,value);
} //添加set
public void sadd(String key, Set<String> value) throws Exception {
Jedis jedis = connection();
for(String str: value){
jedis.sadd(key, str);
}
} //set删除指定元素
public void srem(String key, Set<String> value) throws Exception {
Jedis jedis = connection();
Iterator<String> it = value.iterator();
while(it.hasNext()){
String str = it.next();
jedis.srem(key, str);
}
} //获取key对应的value总数
public Long scard(String key) throws Exception {
Jedis jedis = connection();
return jedis.scard(key);
} //获取key对应的所有value
public Set<String> smembers(String key) throws Exception {
Jedis jedis = connection();
return jedis.smembers(key);
} //判断set是否存在
public boolean sismember(String key, String value) throws Exception {
Jedis jedis = connection();
return jedis.sismember(key,value);
} //随机获取数据
public String srandmember(String key) throws Exception {
Jedis jedis = connection();
return jedis.srandmember(key);
} //向list添加元素
public void lpush(String key, List<String> list) throws Exception {
Jedis jedis = connection();
for(String s: list){
jedis.lpush(key,s);
}
} //获取list
public List<String> lrange(String key, Integer start, Integer end)
throws Exception {
Jedis jedis = connection();
return jedis.lrange(key, start, end);
} //删除任意类型的key
public void del(String key) throws Exception {
Jedis jedis = connection();
jedis.del(key);
} //设置map
public void hmset(String key, Map<String, String> map) throws Exception {
Jedis jedis = connection();
jedis.hmset(key,map);
} //获取map的key的个数
public Long hlen(String key) throws Exception {
Jedis jedis = connection();
return jedis.hlen(key);
} //获取map中所有key
public Set<String> hkeys(String key) throws Exception {
Jedis jedis = connection();
return jedis.hkeys(key);
} //获取map中所有value
public List<String> hvals(String key) throws Exception {
Jedis jedis = connection();
return jedis.hvals(key);
} //获取map中的指定key的value
public List<String> hmget(String key, String... params)
throws Exception {
Jedis jedis = connection();
if (null == params || params.length == 0) {
throw new RuntimeException(this.getClass().getSimpleName()+ "::"
+ new Exception().getStackTrace()[0].getMethodName()+"参数不能为空");
}
return jedis.hmget(key,params);
} //获取map所有的key和value
public Map<String, String> hgetAll(String key)
throws Exception {
Jedis jedis = connection();
return jedis.hgetAll(key);
} //删除指定key的map
public void hdel(String key, String... params) throws Exception {
Jedis jedis = connection();
if (null == params || params.length == 0) {
throw new RuntimeException(this.getClass().getSimpleName()+ "::"
+ new Exception().getStackTrace()[0].getMethodName()+"参数不能为空");
}
jedis.hdel(key,params);
} //测试string
@Test
public void testString() throws Exception{
RedisUtil r = new RedisUtil();
r.set("z", "wb");
String s = r.get("z");
logger.debug(s);
} //测试set
@Test
public void testList() throws Exception{
RedisUtil r = new RedisUtil();
List<String> list = new ArrayList<>();
list.add("w");
list.add("b");
r.lpush("list",list);
List<String> t = r.lrange("list",0,-1);
logger.debug(t);
} //测试set
@Test
public void testSet() throws Exception{
RedisUtil r = new RedisUtil();
Set<String> set = new HashSet<String>();
set.add("w");
set.add("b");
r.sadd("set",set);
Set<String> t = r.smembers("set");
logger.debug(t);
} //测试map
@Test
public void mapTest() throws Exception {
RedisUtil r = new RedisUtil();
Map <String,String> map = new HashMap<>();
map.put("Red Alert 3","Long live Soviet");
map.put("Starcraft","No one can undie");
map.put("PUBG","Keep breath");
r.hmset("Game",map);
r.hdel("Game","Starcraft");
Map <String,String> m = r.hgetAll("Game");
logger.debug(m);
}
}
Java封装Redis常用操作的更多相关文章
- 【Redis使用系列】Redis常用操作
一.string类型的常用命令 set key value #一个key对应一个value.多次赋值,会覆盖前面. setnx key value #如果key存在则创建key1,并返回1,如果 ...
- Python Redis常用操作(持续更新)
目录 1.Redis简介 2.Redis部署 3.Redis API应用 4.String操作 1.Redis简介 redis是业界主流的key-value,nosql数据库之一.和Memcached ...
- java封装 redis 操作 对象,list集合 ,json串
/** * 功能说明: * 功能作者: * 创建日期: * 版权归属:每特教育|蚂蚁课堂所有 www.itmayiedu.com */package com.redis.service; import ...
- java中的redis常用操作
https://blog.csdn.net/lixiaoxiong55/article/details/81592800 超详细版 常规操作 public class TestReidsComm ...
- redis常用操作总结
在项目中时常会用到redis,redis看起来好像很难的样子,而且我也确认反复学习了很久,但是,总结下来,自己使用到的东西并不太多,如下作一些总结工作. 1.安装(单机) 1.1 windows, 直 ...
- Redis常用操作
一.string类型的常用命令 set key1 com #一个key对应一个value,多次复制,会覆盖前面的value setnx key1 zhangsan #如果key1不存在则创建key1, ...
- Redis常用操作大全和Python操作Redis
简单使用 utils.py import redis POOL=redis.ConnectionPool(host='127.0.0.1',port=6379) view.py 第一种方式 (通用方式 ...
- python openpyxl 封装Execl常用操作的方法
封装Excel操作方法:先装openpyxl:pip install openpyxl==2.4.5(可以指定版本) 封装脚本:#encoding=utf-8 from openpyxl import ...
- Redis 常用操作
import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;import java.util.Set; ...
随机推荐
- Android-卖票案例static-不推荐此方式
需求描述:四个窗口一起卖票,把10张票卖完,不许多卖 先看一个错误的案例: package android.java.thread06; /** * 售票线程 */ class Booking ext ...
- Python - 更改pip源至国内镜像
永久使用 [windows] 在用户名目录下创建一个目录 C:\Users\xxx\pip [linux] ~/.pip/pip.conf 新建pip.ini [global] index-url = ...
- 用.net开发音频编辑软件
智能语音机器人软件免不了需要对语音流进行处理,主要包括语音的播放.录制.读取.保存.图形化展示和剪辑等功能.这方面专业的软件有Adobe Audition,为了方便用户使用,我用.net实现了上述功能 ...
- mysql恢复备份错误:Got a packet bigger than 'max_allowed_packet' bytes
最近恢复mysql数据库备份时,出现了一个错误:Got a packet bigger than 'max_allowed_packet' bytes 该问题主要是由于mysql的my.ini文件中设 ...
- 关于jdbc编程的几点需要注意的地方
代码 private void logDataDb(ArrayList<ReceiveData> datas) { Connection conn = null; PreparedStat ...
- Day 36 网络编程-计算机的发展
手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台计算机诞生 ...
- linux 修改MTU值
Linux系统还可以通过如下方式查看.修改MTU值. 查看:cat /sys/class/net/eth0/mtu 设置:echo "1460" > /sys/class/n ...
- strlen()与mb_strlen()的区别
1,strlen()是php的内置函数,可以在php中直接调用:mb_strlen()是php的扩展,需要配置php.ini,以开启mb_strlen()扩展.在php.ini中加载了php_mbst ...
- PHP之旅6 php的类与面向对象
对于类与面向对象的问题其实刚开始不用非要弄懂原因,直接先这样用,用多了你就发现你会了.所以 学习面向对象就先去做.用的多了你就发现这个就是这样的. 对于类的理解,我自己的理解就是:有一个叫做类的东西里 ...
- 【wireshark】Wireshark原理分析与二次开发系列
1.版权声明 本系列文章是本人花了很多心血写成,wireshark本是开源软件,本人也乐于技术知识和经验的分享,更是欣赏和推崇开源精神,因此任何看到本文的人都可以随意转载,但只有一个要求: 在大段甚至 ...