目录
使用redis取代sesion以解决session的共享问题:
特点:单线程,安全性,每个命令具备原子性,value支持多种数据类型,功能丰富。
低延迟,速度快(基于内存、IO多路复用、良好的编码)。
jedis客户端建立:
引入依赖
<dependencies>
<!-- jedis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>5.2.0</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
测试jedis客户端:
直连方式:
package com.heima.test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;
public class JedisTest {
private Jedis jedis;
@BeforeEach
void setUp(){
//建立连接
jedis=new Jedis("192.168.47.130",6379);
//设置密码
jedis.auth("11235813");
//选择库
jedis.select(0);
}
@Test
void testString(){
//存入数据
jedis.set("name","weizhengxiang");
//获取数据
String s = jedis.get("name");
System.out.println(s);
}
@Test
void testHash(){
//存入
jedis.hset("user:1","name","zhangsan");
jedis.hset("user:1","age","18");
//获取
System.out.println(jedis.hgetAll("user:1"));
}
@AfterEach
void setDown(){
if (jedis!=null){
jedis.close();
}
}
}
Jedis本身是线程不安全的,并且频繁的创建和销毁连接会有性能损耗,因此我们推荐大家使用Jedis连接池代替Jedis的直连方式
有关池化思想,并不仅仅是这里会使用,很多地方都有,比如说我们的数据库连接池,比如我们tomcat中的线程池,这些都是池化思想的体现。
解决Redis点评项目的启动出错问题:
NOGROUP No such ke