目录
关于Redis
Redis:由C语言开发的,官方公布,它的读的速度可达 110000次/s,写的速度81000次/s。
支持类型:字符串类型、列表类型、散列类型、有序集合类型、集合类型。
Redis用户:
拥有相当大用户群体,2012年权威发布过,有百分之十二的公司使用,国内如:新浪微博、知乎等网站,国外如GitHub等。
Redis应用场景:
主要的缓存(数据查询、新闻、新闻、商品内容等放到缓存中、聊天室在线好友列表)
任务队列(秒杀,抢购)
网站访问统计
数据过期处理(精确到毫秒)
应用排行榜
分布式集群中的session分离
Jedis
Jedis是Redis连接的基本操作。Jedis是Redis官网首选的java客户端开发包。已经托管到github中,网址如下:
https://github.com/xetorthio/jedis
Redis官网网址:https://redis.io/cliens。官网上推荐连接的是jedis。
java连接redis的步骤:
(一)下载jar包
commons-pool2-2.3.jar
jedis-2.7.2.jar
(二)打开eclipse
新建一个java project。并引入开发包。
(三)配置环境,建立java类。
(四)打开linux环境,打开防火墙(是root用户下)
命令: vim /etc/sysconfig/iptables
[root@master waibao]# vim /etc/sysconfig/iptables
修改ip bind 127.0.0.1 修改为:0.0.0.0
(五)查看开通的端口
[root@master waibao]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6379
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
(六)启动redis
[root@master redis]# ./bin/redis-server ./redis.conf
2407:C 31 Aug 00:17:11.778 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2407:C 31 Aug 00:17:11.778 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=2407, just started
2407:C 31 Aug 00:17:11.778 # Configuration loaded
(七)提取数据
[root@master redis]# ./bin/redis-cli
127.0.0.1:6379> get name
"\xe4\xbb\x8a\xe5\xa4\xa9\xe4\xb8\x8b\xe9\x9b\xa8\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a"
(八)在eclipse中编写单元测试类
package com.huang.jedis;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* @author huang:
* @version 创建时间:2018-8-30 下午3:23:21
* @introduction
*/
public class JedisDemo {
/**
* 单例测试demo1
* @param args
*/
@Test
public void demo1(){
//1.设置ip地址和端口
Jedis jedis=new Jedis("192.168.80.128",6379);//ip地址,端口号
//2.保存数据
// jedis.set("name", "小可爱呀呀");
//3.获取数据
String value1=jedis.get("name");
System.out.println(value1);
//4.释放资源
jedis.close();
}
/*
* 使用连接池的方式
*/
@Test
public void demo2(){
//获取连接池配置对象
JedisPoolConfig config=new JedisPoolConfig();
//设置最大连接数
config.setMaxTotal(30);
//设置最大空闲连接
config.setMaxIdle(10);
//获得连接池
JedisPool jedisPool=new JedisPool(config,"192.168.80.128",6379);//ip地址,端口号
Jedis jedis=null;
try{
//通过连接池获得连接
jedis=jedisPool.getResource();
//设置数据
jedis.set("name", "今天下雨啊啊啊");
//获取数据
String value=jedis.get("name");
System.out.println(value);
//释放资源
}catch(Exception e){
e.printStackTrace();
}finally{
if(jedis!=null){
jedis.close();
}
if(jedisPool!=null){
jedisPool.close();
}
}
}
}