redis
来源:互联网 发布:godaddy创建数据库 编辑:程序博客网 时间:2024/05/23 07:24
1 redis介绍
NoSql ---- Not-Only Sql,泛指非关系数据库,可作为关系型数据库的补充解决问题: 高并发读写 海量数据的高效存储和访问 高扩展和高可用redis是一个高性能的键值对数据库
2 支持的数据类型
字符串散列列表集合有序集合
3 应用场景
缓存分布式集群架构中的session分离聊天室的在线好友列表任务队列(秒杀,抢购,12306等)应用排行榜网站访问统计数据过期处理(精确到毫秒)
4 安装
1.gcc redis是c语言开发的,需要对应的编译工具 yum install gcc-c++2.解压redis-3.0.0.tar.gz 进入目录 编译 make 安装 make install 指定目录安装 make PREFIX=/usr/local/redis install3.配置文件redis.conf 创建一个conf目录,与bin同级 可以修改端口,默认为6379 在源码目录下,复制一份redis.conf到bin目录下
5 bin目录下的文件
redis-server 服务器redis-cli 客户端redis-benchmark 性能测试工具redis-check-aof aof文件修复工具reids-check-dump rdb文件检测工具redis-sentinel 集群管理工具
6 启动
修改redis.conf配置文件,daemonize yes 以后端模式启动执行 ./bin/redis-server ./redis.conf查看 ps aux|grep redis
7 创建多个redis进程
复制两份redis目录将bin和conf拷贝到这个目录之下修改配置文件redis.conf中的端口启动 ./redis_server ./redis.conf查看
8 redis停止
强制停止Redis进程会导致redis持久化数据丢失.应当发送shutdown指令./redis-cli shutdown备注:redis-cli是redis自带的基于命令行的客户端
9 redis连接服务端
指定ip和端口./redis-cli -h 10.10.159.13 -p 6666
10 在客户端中发送最基本的指令
pingset/getdelkeys
11 多数据库
一个redis进程就是一个redis实例,每个实例拥有不同的端口对外提供服务每个实例包括自己的数据库一个实例最多有16个数据库,0~15默认连接第0个可使用select 1进行切换
12 通过jedis连接redis单机
12.1 导包
commons-pooljedis
12.2 单实例连接
Jedis jedis = new Jedis("ip","端口");jedis.set("name","bar");jedis.get("name");jedis.close();
12.3 连接池连接
//创建连接池配置对象JedisPoolConfig config = new JedisPoolConfig();//最大连接数config.setMaxTotal(30);//最大连接空闲数config.setMaxIdle(2);//创建连接池对象JedisPool pool = new JedisPool(config, "192.168.101.3", 6379);//创建连接Jedis jedis = pool.getResource();jedis.close();
12.4 超时解决
需要修改防火墙规则/etc/sysconfig/iptables
12.5 与spring整合
参照12.3进行对象创建就行了,在使用的地方进行注入
13 持久化(把数据从内存中同步到硬盘上)
把内存中的数据同步到硬盘上的过程启动时,会先把硬盘的数据加载到内存中1GB文件大改20~30秒
13.1 RBD持久化
通过快照区完成,符合一定条件时会自动将内存中的数据同步到硬盘中可以在redis.conf中修改配置,可配置多行,为"或"关系save 900 1 (900秒内,至少1条数据被改动,进行保存)save 300 10save 60 10000
13.2 AOF持久化
默认没有开启,实时持久化,一改马上存可以通过修改appendonly参数开启 appendonly yes
14 主从复制
暂时只是了解概念,之后再整理
0 0
- Redis
- redis
- Redis
- redis
- Redis
- redis
- Redis
- redis
- REDIS
- Redis
- Redis
- redis
- Redis
- Redis
- Redis
- Redis
- Redis
- Redis
- 【C++】 LeetCode 98. Validate Binary Search Tree
- 尺取法+POJ3320
- blender球体挖洞
- 基于WSN的智能节水灌溉系统设计方案
- 【项目记录】山东大学场馆管理系统之——需求分析、接口文档
- redis
- 018-Dockerfile指令(1)
- hdu----单词数
- HTML5 canvas之图片批量加载
- 019-Dockerfile指令(2)
- 函数指针和指针函数的区别
- 【强烈推荐】老生常谈-从输入url到页面展示到底发生了什么
- 在Eclipse中直接运行Mapreduce程序
- 020-Dockerfile指令(3)