redis知识点总结
来源:互联网 发布:系统集成软件开发 编辑:程序博客网 时间:2024/06/07 16:45
公司项目需要用到redis、dubbo分布式开发、还有zdal分库分表。这段时间一直在学习相关框架、技术。这里先把redis相关知识点总结先放上来。
Redis知识点总结(未完)
1、 NoSQL
NoSQL 又名not only sql。是一个非关系型数据库。Web2.0比Web1.0多了很多的互动。传统数据库很难横向发展的,很难进行数据库的扩展。Web2.0,需求一:高并发读写。动态页面静态化的技术很难使用关系型数据库实现,需求二:对海量数据的高效率存储和访问的需求。需求三:高可扩展和高可用性
2、 NoSQL四大分类
2.1 键值对存储—Redis
2.2 列存储—hbase
2.3 文档数据库—mongoDB-查询性能不高,缺少统一的查询规则
2.4 图形数据库—infoGrid
3、 NoSQL的特点
3.1 易扩展
3.2 灵活的数据模型
3.3 大数据量、高性能
3.4 高可用
4、Redis安装
4.1 所需要环境、安装
VM、Linux系统 gcc环境 yum install gcc-c++ 然后去官网下载redis安装包,解压后先make一下,然后make PREFIX=/usr/local/redis install
4.2 配置conf文件
拷贝redis.conf文件到安装路径下,vi将倒数的no改为yes。详细配置如下。
4.3 启动以及关闭
./bin/redis-server ./redis.conf ./bin/redis-cli shutdown
5、 Redis特性
5.2 多数据库
A、使用select _数字选择对应数据库,最多到15B、使用move key名称 数据库数据 (select myredis1 1)把keymyredis1移动到1号数据库
5.2 Redis事务
使用三个指令Multi exec discard开始redis事务1、 使用multi开启事务 -----相当于是关系型数据库中的begin2、 使用exec提交失误 ------相当于commit3、 使用discard回滚 -----相当于rollback同关系型数据库不同之处在于,redis事务开启后运行出错,
6、redis持久化
Redis高效的原因在于它的数据存储在内存中,为了保证开关服务器时数据不丢失,需要将内存中的数据存储到磁盘中,这个过程叫做redis的持久化。持久化的方式有两种,可以一种单独使用,也能两种结合使用,现在大部分使用为两者结合使用。
6.1 RDB方式
A、默认支持,不需要进行配置B、RDP指,在指定的时间间隔内,将内存中的数据集快照,写入到磁盘中。优势:{ 1、采用这种方式,整个redis数据库,只包含一个文件,方便备份以及恢复数据 2、在开始持久化时,只需要分叉处进程,可以由分线程执行} 缺点:{ 1、 无法保证数据的高性能利用性}实现:在redis.conf中存在1、Save 900 12、Save 300 103、Save 60 10001----分别表示每十五分钟有一个key值发生变化时,执行一次2----分别表示每五分钟有十个key值发生变化时,执行一次3----分别表示每一分钟有千个key值发生变化时,执行一次FilenameDB-----表示数据库名称Dir ./ ------表示保存在当前路径下
6.2 AOF方式
AOF指、以日志的形式,记录服务器所处理的每一个操作,在redis服务器启启动时,它会读取该文件,重新构建数据库,以保证数据的完整性。优势:{ 1、 更高的数据安全性、利用性每秒同步(效率不错,但是不够安全)、每次修改同步(同步持久化,效率比较低)、无持久化 2、可以根据文件重建数据库缺点:{ 1、AOF运行效率上低于rdb}在redis.conf中appendonly no-----默认不打开,为no,改为yes打开,这个时候会产生一个appendonly.aof文件同步策略Appendfsync 【always everysec no】【每修改一次 每秒同步 无持久化】改完以后需要重启redis服务器生效
6.3 无持久化
这时,redis就是一个缓存的机制,需要在conf配置文件中禁用持久化
6.4 RDB和AOF结合的方式
按照上述配置AOF和RDB同时配置即可,现在大部分的redis使用为两则结合的方式。被当做缓存使用。
7、使用java操控redis
使用java操控redis数据库需要加载jedis.jar包。
步骤如下:
1、开启redis服务器
2、利用jedis连接池连接服务器
3、使用jedis连接池获取jedis对象
4、通过jedis对象获取tx事务对象
5、通过事务对象tx操控数据库
6、事务提交或回滚
7、关闭连接
//Maven相关配置<!-- https://mvnrepository.com/artifact/redis.clients/jedis --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency>
//实现代码如下 //配置参数 String redisAddress = "127.0.0.1"; int redisPort = 6379; int redisTimeout = 2000; //配置连接池,连接对象,其中jedisPoolConfig对象可以操控连接的空闲时间、连接个数等等,这里采用默认方式 JedisPool pool = new JedisPool(new JedisPoolConfig(), redisAddress, redisPort, redisTimeout); Jedis jedis = null; Transaction tx = null;//事务 try { //使用连接池获取jedis对象 jedis = pool.getResource(); //开启连接池事务 tx = jedis.multi(); //使用事务对象操控redis服务器库 //。。。。。。省略业务操作。。。。。。。。 //。。。。。。省略业务操作。。。。。。。。 //。。。。。。省略业务操作。。。。。。。。 //事务提交 tx.exec(); }catch (Exception e) { //如果异常信息,事务回滚 tx.discard(); e.printStackTrace(); } finally { if (jedis != null) jedis.close(); if (pool != null) pool.close(); }
阅读全文
1 0
- redis知识点总结
- Redis知识点总结
- redis知识点--不断总结
- redis知识点总结
- redis知识点
- Redis知识点
- Redis知识点
- 知识点总结:
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- 知识点总结
- hostname和网络设置
- JAVA中 IO流中转换流及缓冲流笔记总结
- 十大编程算法助程序员走上高手之路
- 文章标题
- 面向对象相关
- redis知识点总结
- 记一次OOM异常
- Type mismatch: cannot convert from Class<SpringJUnit4ClassRunner> to Class<? extends Runner>
- 线程池ThreadPoolExecutor使用简介
- rtsp客户端 & ffmpeg解码(基于live555)
- dropZone.js使用
- Fedora 26
- js 小知识 3
- 关于Checked异常和UnChecked异常(即RuntimeException)