Redis常用方法
首先构建非切片连接池jedisPool对象,写好配置redis连接的方法。
/**
* 构建redis切片连接池
*
* @param ip
* @param port
* @return JedisPool
*/
public static JedisPool getJedisPool() {
if (jedisPool == null) {
synchronized (lock) {
//redis服务器对应的IP和端口
String redisIp = PropertiesUtils.getProperties("REDIS_SERVER_IP");
Integer redisPort = Integer.valueOf(PropertiesUtils.getProperties("REDIS_SERVER_PORT"));
if (jedisPool == null) {
JedisPoolConfig config = new JedisPoolConfig();
//设置连接池初始化大小和最大容量 // 控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;
// 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
config.setMaxTotal(-1);
// 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
config.setMaxIdle(1000);
// 表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
config.setMaxWaitMillis(1000 * 30);
// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
config.setTestOnBorrow(true);
// 写
jedisPool = new JedisPool(config, redisIp, redisPort,DEFAULT_TIME_OUT); }
}
}
return jedisPool;
}
我们都知道redis是key,value型就当它是内存数据库把,虽然一般常用于数据缓存,毕竟你往内存中放几千万条数据会弄爆- -(虽然我就是要这么干) 下来,根据key获取value
/**
* 获取数据
*
* @param key
* @return
*/
public static String getForString(String key){
List<String> values = mgetForString(key);
if(values == null) {
return null;
} else {
return values.get(0);
}
}
也可根据key获取value的集合
/**
* 获取数据
*
* @param key
* @return
*/
public static List<String> mgetForString(String... key){
List<String> value = null;
JedisPool pool = null;
Jedis jedis = null;
try {
pool = getJedisPool();
jedis = pool.getResource();
value = jedis.mget(key);
} catch (Exception e) {
log.error(e);
} finally {
//返还到连接池
returnJedisResource(jedis);
}
return value;
}
将数据加载到redis中的方法 一般是用set. 如下列方法,这里指定value是String类型,也是因为我的业务关系把value转成了json串~
public static void setForString(String key,String value){
JedisPool pool = null;
Jedis jedis = null;
try {
pool = getJedisPool();
jedis = pool.getResource();
jedis.set(key, value);
} catch (Exception e) {
log.error(e);
} finally {
//返还到连接池
returnJedisResource(jedis);
}
}
也可获取哈希结构的字段和值
/**
* 设置哈希结构的字段和值
* @param key
* @param value
*/
public static void setForHashObj(String key, Map<String, String> value) {
JedisPool pool = null;
Jedis jedis = null;
try {
pool = getJedisPool();
jedis = pool.getResource();
jedis.hmset(key, value);
} catch (Exception e) {
log.error(e);
} finally {
// 返还到连接池
returnJedisResource(jedis);
}
}
这里的Map也可以改为List<Map<String, String>> values,其实一样的~然后再遍历这个Map即可~
Redis常用方法的更多相关文章
- 30个php操作redis常用方法代码例子
From: http://www.jb51.net/article/51884.htm 这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型. ...
- 30 个 php 操作 redis 常用方法代码例子
这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...
- 爱漂泊人生 30个php操作redis常用方法代码例子
http://www.justwinit.cn/post/8789/ 背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcach ...
- 30个php操作redis常用方法代码例子【转】
背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcache使用,这是大才小用,这儿有30个方法来使用redis,值得了解. 这 ...
- php操作redis常用方法源代码
1,connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: <?php $redis ...
- php redis常用方法代码例子
1,connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: <?php $redis ...
- 30个php操作redis常用方法代码例子(转载)
1.connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE示例: $redis = new red ...
- Python 操作redis 常用方法
Python 操作redis 1.字符串 #!/usr/bin/env python # -*- coding:utf-8 -*- import redis # python 操作str class ...
- redis 常用方法整理
1.进入redis redis-cli -p -h 192.168.0.100 -a q9pCeAEMAWEL 2.查询keys keys activity_mobile_* 3.赋值.查值.删除 s ...
随机推荐
- html部分---表单、iframe、frameset及其他字符的用法(以及name、id、value的作用与区别);
<form action="aa.html" method="post/get"> /action的作用是提交到..,methed是提交方法,用po ...
- 安装sklearn时出现 "ImportError: DLL load failed" 的解决方法
如果sklearn是从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn 中下的whl包装的 必须装他家的numpy+MKL库.如果你装的 ...
- 《jave程序设计》第一周学习总结
<JAVA程序设计>第一周学习总结 教材学习内容总结 在第一周的学习中,我初次认识了JAVA程序的一些基础知识.我发现了很多问题 问题就是自己的代码编写出现了一点问题,符号和单词的大小写都 ...
- Android——不同activity之间数据传递
/* * 不同activity之间数据的传递 */ public class MainActivity extends Activity { private EditText et_name; @Ov ...
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方“深度学习大讲堂”可订阅哦!深度学习大讲堂是高质量原创内容平台,邀请 ...
- Java之JUC系列:外部Tools
前面写了两篇JDBC源码的文章,自己都觉得有点枯燥,先插一段JUC系列的文章来换换胃口,前面有文章大概介绍过JUC包含的东西,JUC体系包含的内容也是非常的多,不是一两句可以说清楚的,我这首先列出将会 ...
- Linux 查看CPU信息、机器型号等硬件信息
测试机器的硬件信息: 查看CPU信息(型号) # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeo ...
- Python-requests之POST Data的json问题
代码如下: import json import requests r = requests.post(url, data = {"a": json.dumps({"b& ...
- Windows Azure 生成证书
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64>makecert -sky exchange -r -n &qu ...
- unity,下面两个协程不等价
//代码1 IEnumerator A(){ Debug.Log(“hi1”); { yield return new WaitForSeconds(1f); Debug.Log(“hi2”); } ...