一.Redis 简介1.Redis解释:Redis 是一个基于key-value形式进行存储的内存型数据库.1.1 数据存储方式为key-value1.2 数据存储在内存中.1.2.1 优点:效率高.理论值:每秒10K数据读取.1.3 定位:数据库软件.1.3.1 作用:存...
一.Redis 简介
1.Redis解释:Redis 是一个基于key-value形式进行存储的内存型数据库.
1.1 数据存储方式为key-value
1.2 数据存储在内存中.
1.2.1 优点:效率高.理论值:每秒10K数据读取.
1.3 定位:数据库软件.
1.3.1 作用:存储数据.
2.Reids 是一个NoSql 数据库.
2.1 字面理解: 不使用SQL命令操作数据库软件.
2.2 NoSQL : 英文全称 Not Only SQL ,表示在应用程序开发时,不是必须使用关系型数据库,可以使用NoSQl替代关系型数据库的部分功能.
2.3 目前NoSQL不能完全替代关系型数据库.使用关系型数据库结合NoSQl数据库进行完成项目
2.3.1 当数据比较复杂时不适用于NoSQL数据库
2.3.2 关系型数据库依然做为数据存储的主要软件.
2.3.3 NoSQL数据库当作缓存工具来使用.
2.3.3.1 把某些使用频率较高的内容不仅仅存储到关系型数据库中还存储到NoSQL数据中
2.3.3.2 考虑到: NoSQL和关系型数据库数据同步的问题.
3.Redis 持久化策略
3.1 rdb
3.1.1 默认的持久化策略.
3.1.2 每隔一定时间后把内存中数据持久化到dump.rdb文件中.
3.1.3 缺点:
3.1.3.1 数据过于集中.
3.1.3.2 可能导致最后的数据没有持久化到dump.rdb中
3.1.3.2.1 解决办法:使用命令:SAVE 或BGSAVE手动持久化.
3.2 aof
3.2.1 监听Redis的日志文件,监听如果发现执行了修改,删除,新增命令.立即根据这条命令把数据持久化.
3.2.2 缺点:
3.2.2.1 效率降低.
二. Redis 常用命令
1.命令手册网址
http://doc.redisfans.com/ |
2.Redis数据类型
2.1 String
2.2 Hash
2.3 List
2.4 Set
2.5 SortedSet 有序集合
三. Redis 几个常用概念
1.Redis 默认有16384 solts(槽),每个槽可以存储多个hash值.
2.Redis 默认不需要密码:
2.1 注释去掉,设置自己的密码
3.设置密码后需要通过
3.1 -h 主机ip
3.2 -p 端口
3.3 -a 密码
./redis-cli -h 192.168.139.132 -p 6379 -a smallming
四 . Jedis
1.Jedis 是Redis 客户端工具jar
2.使用非集群版示例代码
Jedis jedis = new Jedis("192.168.139.132", 6379); // 新增或修改 // String result = jedis.set("address", "海淀"); // 查询 // String result1 = jedis.get("address"); // 删除 // Long index = jedis.del("address");
五. Jedis 集群
1.集群的概念:
1.1 多个业务单元协同工作组成的整体称为集群.
1.1.1 每个业务单元都是相同的.
2.当集群中业务单元中超过或等于1/2个down掉时整个集群不可用.
2.1 建议使用奇数个,整体down机率小
3.一主一备模式
3.1 给每个业务单元创建一个备份业务单元. 原来的业务单元(master)后产生的叫做(slave)
4.集群和伪集群
4.1 集群: 每个业务单元都安装到单独的服务器上
4.2 伪集群: 所有业务单元都安装到同一个服务器上,通过端口区分不同的业务单元.
5. 使用Jedis访问Reids集群
Set<HostAndPort> set = new HashSet<>(); set.add(new HostAndPort("192.168.139.132", 7001)); set.add(new HostAndPort("192.168.139.132", 7002)); set.add(new HostAndPort("192.168.139.132", 7003)); set.add(new HostAndPort("192.168.139.132", 7004)); set.add(new HostAndPort("192.168.139.132", 7005)); set.add(new HostAndPort("192.168.139.132", 7006)); JedisCluster cluster = new JedisCluster(set); String result = cluster.get("a"); System.out.println(result);
六. 流程
1.查询
如果redis中存在,从redis中取出,如果redis中不存在,从mysql取出,缓存到redis中
2.增删改
2.1操作mysql数据库
2.2判断redis中是否有缓存数据
2.3如果有则修改缓存数据
本文标题为:Redis总结
基础教程推荐
- Python常见库matplotlib学习笔记之多个子图绘图 2023-07-27
- 如何将excel表格数据导入postgresql数据库 2023-07-20
- Redis如何实现延迟队列 2023-07-13
- 关于MySQL中explain工具的使用 2023-07-27
- Mysql主从三种复制模式(异步复制,半同步复制,组复 2022-09-01
- 【Redis】数据持久化 2023-09-12
- Sql Server Management Studio连接Mysql的实现步骤 2023-07-29
- SQLServer 清理日志的实现 2023-07-29
- python中pandas库的iloc函数用法解析 2023-07-28
- Mysql查询所有表和字段信息的方法 2023-07-26