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; ...
随机推荐
- Delphi Dll 动态调用例子(2)
http://zhidao.baidu.com/question/157196792.html delphi动态调用DLL 写了个1.dll内容如下 library Project2; uses Sy ...
- bash基本命令速查表
来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/languages/bash.sh ################ ...
- Windows下常用的100个CMD指令以及常见的操作
gpedit.msc—–组策略 2. sndrec32——-录音机 3. Nslookup——-IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命令行工具. 它在 Wind ...
- Android开源库集合(控件)
RecycleView: RecycleView功能增强 https://github.com/Malinskiy/SuperRecyclerView RecycleView功能增强(拖拽,滑动删除, ...
- mvc基础知识(1)
复制大佬的,侵权请联系我主动删除 1.js/css合并 在之前的crud例子中,我们引入js/css脚本的方式和平常的web开发一样 <script src="~/Scripts/jq ...
- s11 day100路飞项目逻辑购物车一
Luffy项目 先看练习,如下: 一. 添加购物车和查看 1. url url(r'^shoppingcar/$', shoppingcar.ShoppingCarView.as_view({&quo ...
- 二,PHP会话机制---session的基本使用
1,思考:登录网站后,在每个网页都能拿到用户信息 (1) 使用超链接传递用户名,这样太繁琐了,不建议使用 . (2) 使用数据库,每打开一个页面都查询一次用户信息表,这样网页加载速度变慢,用户体验变差 ...
- Mutual Training for Wannafly Union #6 E - Summer Trip(并查集)
题目链接:http://www.spoj.com/problems/IAPCR2F/en/ 题目大意: 给m个数字代表的大小,之后n组数据,两两关联,关联后的所有数字为一组,从小到大输出组数以及对应的 ...
- PHP之旅6 php的类与面向对象
对于类与面向对象的问题其实刚开始不用非要弄懂原因,直接先这样用,用多了你就发现你会了.所以 学习面向对象就先去做.用的多了你就发现这个就是这样的. 对于类的理解,我自己的理解就是:有一个叫做类的东西里 ...
- 非对齐访问(unaligned accesses)
从CPU角度看内存访问对齐 结构体成员非对齐访问所带来的思考 ARM体系中存储系统非对齐的存储访问操作 什么是cache line? cache line就是处理器从RAM load/store数据到 ...