NoSQl
Not Only SQL
非关系型数据库
为什么需要NoSQl
- 高并发读写 High perfoemance
- 海量数据高效存储和访问 Huge Storage
- 高可扩展性和高可用性 High Scalability && High Availability
主流NoSQl
NoSQl四大分类
- 键值对(key-value)
- 列存储
- 文档数据库
- 图形数据库
NoSQl特点
- 易拓展
- 灵活的数据类型
- 大数据量 高性能
- 高可用
Redis概述
Redis由来
C语言开发的键值对数据库
支持键值对数据类型
- 字符串类型
- 列表
- 有序集合
- 散列
- 集合
Redis应用场景
- 缓存
- 任务队列
- 应用排行榜
- 网站访问统计
- 数据过期处理
- 分布式集群架构中的session分离
Jdeis入门
导入包
import org.junit.Test;
import redis.clients.jedis.Jedis
JdeisDemo类
public class JedisDemo{
public void demo(){
//1.设置IP地址和端口
Jedis jedis = new Jedis("192.168.32.130",6379);
//2.保存数据
jedis.set("name","ifeng");
//3.获取数据
String value = jedis.get("name");
System.out.[riongln(value);
//4.释放资源
jedis.close();
}
}
==========================================================
链接池方式
==========================================================
public void demo2(){
//获得连接池的配置对象
JedisPoolConfig config = new JedisPoolConfig();
//设置连接池最大数
congfig.setMaxTotal(30);
//设置最大空闲链接
config.setMaxIdle(10);
//获得连接池
JdeisPool jedisPool = new JedisPool(config,"ip",duankou);
//获得核心对象
Jedis jedis = null;
try{
//通过连接池获得链接
jedis = jedisPool.getResource();
//设置数据
jedis.set("name","ifeng");
//获取数据
String value = jedis.get("name");
System.out.[riongln(value);
}catch(Exception e){
e.printStackTrace();
}finally{
//释放资源
if(jedis != null){
jedis.close();
}
if(jedispool != null){
jedisPool.close();
}
}
}