首先构建非切片连接池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常用方法的更多相关文章

  1. 30个php操作redis常用方法代码例子

    From: http://www.jb51.net/article/51884.htm 这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型. ...

  2. 30 个 php 操作 redis 常用方法代码例子

    这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...

  3. 爱漂泊人生 30个php操作redis常用方法代码例子

    http://www.justwinit.cn/post/8789/ 背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcach ...

  4. 30个php操作redis常用方法代码例子【转】

    背景:redis这个新产品在sns时很火,而memcache早就存在, 但redis提供出来的功能,好多网站均把它当memcache使用,这是大才小用,这儿有30个方法来使用redis,值得了解. 这 ...

  5. php操作redis常用方法源代码

    1,connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: <?php $redis ...

  6. php redis常用方法代码例子

    1,connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: <?php $redis ...

  7. 30个php操作redis常用方法代码例子(转载)

    1.connect 描述:实例连接到一个Redis.参数:host: string,port: int返回值:BOOL 成功返回:TRUE;失败返回:FALSE示例: $redis = new red ...

  8. Python 操作redis 常用方法

    Python 操作redis 1.字符串 #!/usr/bin/env python # -*- coding:utf-8 -*- import redis # python 操作str class ...

  9. redis 常用方法整理

    1.进入redis redis-cli -p -h 192.168.0.100 -a q9pCeAEMAWEL 2.查询keys keys activity_mobile_* 3.赋值.查值.删除 s ...

随机推荐

  1. 重启Tomcat的脚本

    说明:一台服务器上跑了8个Tomcat case的方式: #!/bin/bash #reboot tomcat!!! #Author:fansik echo -e "\033[1;42;31 ...

  2. 排序算法总结(二)归并排序【Merge Sort】

    一.归并排序原理(Wikipedia) 归并排序本质是分治思想的应用,并且各层分治递归可以同时进行 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 2.设定两个指针,最初位置 ...

  3. 搭建最简单的SpringMVC框架(使用maven)

    本文说明:本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 下载链接 点此进入下载链接 1.创建一个maven webapp工程. 2.修改WEB-INF目录下的we ...

  4. set and Sequence theory

    https://en.wikipedia.org/wiki/Class_(set_theory) https://en.wikipedia.org/wiki/Zermelo%E2%80%93Fraen ...

  5. 了解oracle数据库的情况

    1.了解你的数据库版本号 2.是否配置了DataGuard? SQL> select protection_mode, protection_level, remote_archive,data ...

  6. xUtils3的简单介绍

    xUtils3的简介 xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能. 1.xUtils包含了很多 ...

  7. MySQL DBA的个人修养

    做为一个MySQL DBA,必须具有以下的素质: 一, 身体素质 DBA必须接收和处理各种报警,不论是中午在吃饭或者凌晨三点已经进入深度睡眠.接到报警需要立即进入应急状态,找到电脑,联上网络,快速定位 ...

  8. 在easyui datagrid中formatter数据后使用linkbutton

    http://ntzrj513.blog.163.com/blog/static/2794561220139245411997/ formatter:function(value,rowData,ro ...

  9. ASP.NET MVC内置的Filter实现介绍

    有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你创建action过滤器.Action过滤器是自定义的Attributes,用来标记添 ...

  10. CodeFirstMigrations更新数据库结构(EF数据迁移)

    背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的 ...