NoSQL
not only sql;
全新数据库理念;非关系型数据库;
NoSQL 特点
- 易扩展
- 灵活的数据模型
- 大数据量,高性能
- 高可用
NoSQL 数据库的四大分类
- 键值对存储 eg: redis, 优势:查询快 劣势:数据缺少结构化
- 列存储 eg: HBase,优势:查询快 劣势:功能相对局限
- 文档数据库 eg: MongoDB, 优势:数据要求不是很严格 劣势:查询性能不是特别高,缺少统一查询语法
- 图形数据库 eg: InfoGrid, 优势:利用图结构相关算法 劣势:需要对图进行计算,不容易做分布式集群方案
NoSQL 产品
MongoDB、Redis、Riak等等
为什么需要 Redis ?
- High Performance 高并发读写;
- Huge Storage 海量数据的高效率存储和访问;
- High Scalability && High Availability 高可扩展性和高可用性;
Redis 概述
高性能键值对数据库,支持的简直数据类型:
- 字符串类型
- 列表类型
- 有序集合类型
- 散列类型
- 集合类型
Redis 应用场景
- 缓存
- 任务队列
- 网站访问统计
- 数据过期处理
- 应用排行榜
- 分布式集群架构中的 session 分离
Redis 安装
Mac
1、执行 brew install redis
2、启动 redis,可以使用后台服务启动 brew services start redis
。或者直接启动:redis-server /usr/local/etc/redis.conf
启动配置
通过使用 Homebrew,可以大大降低在 Mac OS X 上设置和配置 Redis 开发环境的成本。
brew install redis
通过以上命令执行安装。
设置开机启动 Redis
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
通过 launchctl 启动 Redis 服务
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
使用配置文件启动 Redis 服务
redis-server /usr/local/etc/redis.conf
停用开机启动的 Redis
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
Redis 配置文件存放位置
/usr/local/etc/redis.conf
卸载 Redis 和依赖文件
brew uninstall redis
rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
获取 Redis 包信息
brew info redis
测试 Redis 服务是否正在运行
redis-cli ping
如果回复 “PONG”,表明正常运行!
Jedis
Jedis 是 Redis 官方首选的 Java 客户端开发包
入门使用
/**
* 项目名:demo
* 包名:com.example
* 类名:Test
* 描述:
*
* @author Suremotoo
* @create 2018-05-10 09:08
*/
public class Test {
@org.junit.Test
public void test() {
// 1.连接 redis
Jedis jedis = new Jedis("127.0.0.1", 6379);
// 2.存储数据
jedis.set("name", "Suremotoo");
// 3.获取数据
String value = jedis.get("name");
// 4.控制台打印测试结果
System.out.println("value = " + value);
// 5.关闭连接
jedis.close();
}
}
如果是连接的 Redis 在 Linux 服务器上,需要设置防火墙
vim /etc/sysconfig/iptables
# 添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
:wq 保存退出, 最后重启 linux 服务器防火墙
service iptables restart
Jedis 与 JDBC 很类似,也有连接池
/**
* 连接池方式连接
*/
@org.junit.Test
public void poolTest() {
// 获得连接池的配置对象
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 设置最大连接数
jedisPoolConfig.setMaxTotal(30);
// 设置最大空闲连接数
jedisPoolConfig.setMaxIdle(10);
// 获得Jedis 连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);
// Jedis 对象
Jedis jedis = null;
try {
// 通过连接池获得连接
jedis = jedisPool.getResource();
// 设置数据
jedis.set("name", "Suremotoo");
// 获取数据
String value = jedis.get("name");
System.out.println("value = " + value);
if (value != null && "".equals(value)) {
jedis.del("name");
} else {
System.out.println(" 空 ");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jedis != null) {
jedis.close();
}
if (jedisPool != null) {
jedisPool.close();
}
}
}
本文由 Suremotoo 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Feb 22,2020