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 ...
随机推荐
- C#部分---"++"在前在后的区别。
int a=5; int b=a++;//int b=a;a=a+1 int c=++a;//a=a+1;int c=a
- oracle锁机制
1 前言 数据库大并发操作要考虑死锁和锁的性能问题.看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据 库执行请求,T2代表另一个请求,也可以理解为T1为 ...
- Docker仓库管理
1.# docker pull registry //下载registry镜像,registry为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库. 2.# docker ...
- Linux下串口与工业协议的开发
1.串口通信原理 串口通信定义 串口通信:数据的串行传送方式.串口通信可分为同步通信与异步通信. 同步通信:按照软件识别同步字符来实现数据的发送和接收. 将许多字符组成一个信息组进行发送 要求发送时钟 ...
- Linux应用程序的地址布局
转载自:http://blog.csdn.net/embedded_hunter http://www.360doc.com/content/12/0405/00/1671317_200882538. ...
- 查找目录下的所有文件中是否含有某个字符串 linux
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...
- CentOS6.4安装Golang环境
什么是Go? Go是一门并发支持.垃圾回收的编译型的系统编程语言,目的是为了创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言. Go的主要特点有哪些? 类型安全和 ...
- SSE入门
此文主要内容来自这篇文章,本文翻译只求能理解,不求逐句翻译. 正文: 我们将在本文中介绍如何在C++/C中使用SSE指令.我的目的不是用SSE写尽可能快的程序,而是试图讲明白它的使用方法. 什么是SS ...
- PCA和Softmax分类比较—Mnist与人脸数据集
PCA人脸识别中三种方法得到的正确率可达到100% 作为对比,单独使用Softmax回归对人脸40*10*92*112的数据分类正确率为97%. 用PCA对MNIST手写数字10*500*28*28识 ...
- 虚拟化之lxc
LXC 中文名称就是 Linux 容器工具,容器可以提供轻量级的虚拟化,以便隔离进程和资源,使用 LXC 的优点就是不需要安装太多的软件包,使用过程也不会占用太多的资源,本文循序渐进地介绍LXC的建立 ...