redis-如何在工程中使用redis
这里,我们介绍下如何使用redis作为缓存服务器使用在我们的工程中。
使用思路
对于java中的使用redis提供了一个jedis的jar包。我们在安装好我们的redis服务器以后,只需要通过redis提供的jra包的相应方法进行访问就可以得到数据了。为了尽可能的简单,我们就实现用java代码实现对redis的添加和读取。
创建工程
首先是创建一个测试的工程

然后,创建一个lib目录引入jar包,我引入的jar包是2.7.2的包,这是一个客户端链接redis的包,同学可以自行从网上下载相应的jar包。
然后将这个jar包进行build path,然后得到的项目列表如下图:

在我们的jar包引入完成后,就是测试代码的编写了。
测试
首先我们创建一个测试的jar包(写不写都行,但是个人习惯把所有的代码都写在包里面),然后写一个jedisTest类。我直接把代码粘上来,具体说明写在代码注释中吧。
package cn.test;
import org.junit.Test;
import redis.clients.jedis.Jedis;
public class JedisTest {
//书写测试类
@Test
public void TestJedis(){
//创建jedis对象,相当于创建了一个客户端和reidis服务器的链接。需要ip和端口号,IP就是安装有redis服务的linux服务器的地址,端口号默认为6379
Jedis jedis= new Jedis("192.168.37.161",6379);
//ping redis服务器,这是它的一个方法,如果服务正常,会回复一个pong
String pong = jedis.ping();
System.out.println("如果服务器可用请返回pong,谢谢合作:"+pong);
//先用第一个键去取一次值,这个时候redis中没有数据返回应该是空的。
String value = jedis.get("key");
System.out.println("第一次访问的时候取到的值="+value);
//将数据存入reidis服务器中
jedis.set("key","第一次存入的值");
//将数据取出
value = jedis.get("key");
System.out.println("存入相应的值以后取到的值="+value);
//关闭和redis的链接
jedis.close();
}
}
测试代码运行完的结果如下:

redis的连接池
我们刚才也看到了,我们的redis的链接每次都需要创建链接和关闭链接,这是很浪费资源的,所以,我们redis也有链接池的技术。以下为使用连接池的时候的代码,跟之前的测试代码相当类似,这里就不再赘述了。
public class JedisPoolTest {
public static void main(String[] args) {
// 1. 创建连接池JedisPool
JedisPool jedisPool = new JedisPool("192.168.37.161", 6379);
// 2. 从连接池获取连接jedis
Jedis jedis = jedisPool.getResource();
// 3. 使用连接jedis操作redis
jedis.select(2);
String pong = jedis.ping();
System.out.println(pong);
String key = "jedisPoll";
String setResult = jedis.set(key, "hello redis!");
System.out.println(setResult);
String getResult = jedis.get(key);
System.out.println(getResult);
// 4.释放资源,每次用完jedis连接,必须close(),指的就是还回连接池
jedis.close();
// 程序结束,销毁连接池
jedisPool.close();
}
}
redis-如何在工程中使用redis的更多相关文章
- 用Python来操作redis 以及在Django中使用redis
什么是Redis? Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值可以包 ...
- 【redis】spring boot中 使用redis hash 操作 --- 之 使用redis实现库存的并发有序操作
示例: @Autowired StringRedisTemplate redisTemplate; @Override public void dealRedis(Dealer dealer) { d ...
- Redis学习笔记之二 :在Java项目中使用Redis
成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...
- 在express项目中使用redis
在express项目中使用redis 准备工作 安装redis 安装redis桌面管理工具:Redis Desktop Manager 项目中安装redis:npm install redis 开始使 ...
- Redis笔记(一):Redis安装教程
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是目前应用最广泛的内存数据存储技术,相比之前的Me ...
- redis缓存数据库及Python操作redis
缓存数据库介绍 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库,随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站, 特 ...
- .NET中使用Redis (二)
很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...
- 转:.NET中使用Redis (二)
原文来自于:http://blog.jobbole.com/83824/ 原文出处: 寒江独钓 欢迎分享原创到伯乐头条 很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务 ...
- .NET中使用Redis(二)
很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...
随机推荐
- 23、手把手教你Extjs5(二十三)模块Form的自定义的设计[2]
在本节中将要加入各种类型的字段,在加入字段的时候由于可以一行加入多个字段,因此层次结构又多了一层fieldcontainer.form里面的主要层次结构如下: form -- fieldSet -- ...
- (中等) HDU 1542 Atlantis,扫描线。
Problem Description There are several ancient Greek texts that contain descriptions of the fabled is ...
- LPC1768的IIS通讯
IIS是飞利浦公司定义的一种用于音频传输的数字总线,LPC1768支持该总线, I2S接口为一条3线串行总线,含有1根数据线.1根时钟线和1根字选择信号线.基本的I2S连接具有一个主机(其总是为主机) ...
- webstrom命令大全
Ctrl + Space:Basic code completion (the name of any class, method or variable) 基本代码完成(任何类.函数或者变量名称), ...
- tornado 增加日志模块
log类 #!/usr/bin/env python # -*- coding:utf-8 -*- import logging.handlers class Logger(logging.Logge ...
- eclipse安装maketplace插件
对于默认eclipse是没有marketplace插件的,但是marketplace确实是非常好用的,可以在上面下载各种插件. 1.Help-->Install new Software 2.输 ...
- React Native 之 搭建开发环境
现在只能在MAC系统上安装. 1. 首先,HomeBrew 这是一个包管理库,用来下载其它工具. 打开网站:brew.sh 网页有个命令 /usr/bin/ruby -e "$(curl - ...
- 中英文混合字符串截取java
//截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2 ...
- Chrome Timeline的指标说明:Blocked、Connect、Send、Wait、Receive
Blocked time includes any pre-processing time (such as cache lookup) and the time spent waiting for ...
- OC--设置视图控制器,从导航栏的下边缘开始
self.edgesForExtendedLayout = UIRectEdgeNone;