浅析Redis(Jedis)
来源:互联网 发布:淘宝高仿警官证制作 编辑:程序博客网 时间:2024/06/05 09:29
NoSQL概述
not only SQL 泛指非关系型数据库
- 有效解决高并发读写问题
- 解决海量数据的高效率存储和访问
- 高扩展性和高可用性
NoSQL四大分类
键值对存储
可快速查询数据,但数据结构性较差
列存储
查找速度快,扩展性强,但使用较为局限
文档数据库
数据结构要求不是很严格,查询效率较低,缺少统一语法
图形数据库
利用图结构算法,需要对图计算才能得出结果,不容易做分布式处理
NoSQL特点
- 易扩展
- 灵活的数据模型
- 大量数据高性能存储
- 高可用
Redis概述
高性能键值对数据库
支持的数据类型
- String类型
- List类型
- Hash类型
- Set类型
- SortedSet类型
Jedis
Jedis是Redis官方推荐的Java客户端开发包
Jedis基本操作
import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class JedisDemo1 { // 单实例测试 @Test public void Single() { // 设置IP地址和窗口号 Jedis jedis = new Jedis("127.0.0.1", 6379); // 保存数据 jedis.set("name", "test"); // 获取数据 String value = jedis.get("name"); System.out.println(value); // 释放资源 jedis.close(); } // 连接池方式连接 @Test public void pool() { // 获得连接池配置对象 JedisPoolConfig config = new JedisPoolConfig(); // 设置最大连接数 config.setMaxTotal(30); // 设置最大空闲数 config.setMaxIdle(15); // 获得连接池 JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379); // 获得核心对象 Jedis jedis = null; try { // 通过连接池获得连接 jedis = jedisPool.getResource(); // 设置数据 jedis.set("name", "test"); // 获取数据 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(); } } }}
Redis数据结构
key注意点
- 不要过长(不超过1024字节,会消耗内存并降低查找速度)
- 不要过短(降低可读性)
String存储
- 二进制安全,存入和获取数据相同
- value最多可以容纳的数据是512M
String常用命令
- 赋值
- 取值
- 删除
- 扩展
- 数值增减
存储Hash
- String key 和 String value 的map容器
- 每一个Hash可以存储大量的键值对
常用操作
- 赋值
- 取值
- 删除
- 自学命令
- 增加数字
存储List
- 双向链表增加数据
- 双向链表减少数据
- ArrayList使用数组方式
- LinkList使用双向链接方式
常用命令
- 两端添加
- 查看列表
- 两端弹出
- 获取列表元素个数
- 扩展命令
Redis
- 多数据库
- Redis事务
Redis持久化
两种持久化方式
RDB
默认支持,不需要配置,在指定的间隔内将内存中数据会写到硬盘中
AOF
以日志的形式进行记录,服务器启动过程中读取日志进行数据还原
不持久化
仅将Redis当作缓存
RDB
优势
仅产生一个文件便于管理和灾难恢复以及实现性能最大化
劣势
按时回写到磁盘,无法避免数据丢失
AOF
优势
带来更高的数据安全性/数据一致性问题有良好的解决工具/如果日志过大,redis可以自动启动重写机制
劣势
文件较大/运行效率低/需要进行相应的配置
Redis修改策略
- 每秒同步
- 每修改同步
- 不同步
阅读全文
0 0
- 浅析Redis(Jedis)
- Redis安装及Java客户端的使用浅析(jedis)
- Redis安装及Java客户端的使用浅析(jedis)
- redis (jedis API)
- Redis java(jedis)
- Jedis操作redis(转)
- Jedis操作redis(转)
- Redis 之 Jedis(1)
- Redis数据类型操作。(Jedis)
- redis杂记(二) --jedis
- Redis笔记(使用Jedis)
- redis jedis
- redis jedis
- redis jedis
- jedis-redis
- redis + Jedis
- redis jedis
- redis jedis
- angualrjs之注册页面
- Android内存泄漏总结
- CodeForces
- js对象和数组的遍历
- 有参构造函数和无参构造函数的区别
- 浅析Redis(Jedis)
- 《Thinking in Java》——异常的限制,子类异常与父类异常接口的关系
- android之联网Nohttp
- 909422229_MongoDB第一节:安装与卸载
- 关于javax.crypto.BadPaddingException: Blocktype错误的几种解决方法
- 问题
- 成功在Tiny 4412 开发板上 移植 ffmpeg,搞定了手册上USB摄像头不能摄像录制功能!!!
- 动画和图形:硬件加速
- 【备忘】虚拟化容器/Docker视频教程/kubernetes/云计算/实例教程