redis
约 1468 字大约 5 分钟
- 1. NoSQL介绍
- 2. NoSQL产生原因
- 3. NoSQL的特点
- 4. redis介绍
- 5. Redis数据库
- 6. 消息订阅与发布
- 7. 事务
- 8. 安装与启动
- 9. jedis的操作
- 10. redis单机安装
- 11. Redis集群的搭建
- 12. java连接则用jedis
1. NoSQL介绍
- 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上
- nosql数据库是基于特殊的结构,并将数据存储到内存的数据库
- 从性能上而言,nosql数据库要优于关系型数据库
- 从安全性上而言关系型数据库要优于nosql数据库
- 一个项目中nosql和关系型数据库会一起使用,达到性能和安全性的双保证
2. NoSQL产生原因
- 1.数据库高并发读写需求
- 2.海量数据高效率存储和访问
- 3.数据库高扩展性和高可用性
3. NoSQL的特点
- 易扩展、大数据量,高性能,灵活的数据模型,高可用
4. redis介绍
- redis是一种高级的key-value的存储系统
- Redis中所有的数据都是字符串。命令不区分大小写,key是区分大小写的。Redis是单线程的。Redis中不适合保存内容大的数据。
5. Redis数据库
- 多数据库
- 有0-15数据库,默认为0,选择数据库select n选择n号数据库
- 移库 move newkey n将当前的key移植到n号库中
6. 消息订阅与发布
![消息的订阅与发布.JPG](https://290ff162.telegraph-image-eg9.pages.dev/file/28327364030668f3c4d44.jpg)
7. 事务
![redis事务.png](https://290ff162.telegraph-image-eg9.pages.dev/file/cc1727548496fd141234c.png)
8. 安装与启动
- 在redis的bin目录下可以执行./redis-server前端启动方式
- 在bin下执行命令,/redis-server redis.conf(后端启动)
- 关闭:关闭进程、在客户端下shutdown
- 连接redis redis-cli -h ip -p port
9. jedis的操作
导包commons-pool2-2.3.jar\jedis2.7.0jar
JedisConfig config=new JedisConfig();
config.setMaxtotal(30);
config.setMaxIdle(10)
JedisPool pool = new JedisPool(JedisConfig,host,port);
Jedis jedis=null;
jedis=pool.getResource();
jedis.set(key,数据类型)
jedis.get(key,数据类型)
Jedis jedis = new Jedis(host,port);
jedis.set(key,数据类型)
jedis.get(key,数据类型)
10. redis单机安装
Redis是c语言开发的。
安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++
安装步骤:
- 1.redis的源码包上传到linux系统。
- 2.解压缩redis。
- 3.编译。进入redis源码目录。make
- 4.安装。make install PREFIX=/usr/local/redis PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下
- 5.redis的启动:
- 前端启动:在redis的安装目录下直接启动redis-server
- [root@localhost bin]# ./redis-server
- 后台启动:把/root/redis-3.0.0/redis.conf复制到/usr/local/redis/bin目录下
- [root@localhost redis-3.0.0]# cp redis.conf /usr/local/redis/bin/
- 6.修改配置文件:daemonize no 为yes
- [root@localhost bin]# ./redis-server redis.conf
- 查看redis进程:[root@localhost bin]# ps aux|grep redis
redis-cli连接 : [root@localhost bin]# ./redis-cli 默认连接localhost运行在6379端口的redis服务。
- [root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379
-h:连接的服务器的地址
-p:服务的端口号
- [root@localhost bin]# ./redis-cli -h 192.168.25.153 -p 6379
关闭redis:[root@localhost bin]# ./redis-cli shutdown
设置密码:config set requirepass pass_123456
获取密码:config get requirepass
登录:auth password
11. Redis集群的搭建
Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
- Redis集群至少需要6台服务器。
- 搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006
集群搭建环境
使用ruby脚本搭建集群。需要ruby的运行环境。
- yum install ruby
- yum install rubygems
安装ruby脚本运行使用的包。
- 将redis-3.0.0和redis-3.0.0.gem放在一起然后执行
- gem install redis-3.0.0.gem
搭建步骤:需要6个redis实例。需要运行在不同的端口7001-7006
第一步:创建6个redis实例,每个实例运行在不同的端口。
- 如果你的节点中包含了appendonly.aof和dump.rdb请删除了,保证节点的干净
- 需要修改redis.conf配置文件。配置文件中还需要把cluster-enabled yes前的注释去掉。
- 同时修改port为7001
- cp redis/bin /usr/java/redis-cluster/redis07 -r将之前安装好的bin目录一个一个复制到redis-cluster中
![图片7.png](https://290ff162.telegraph-image-eg9.pages.dev/file/5a73634ac3215338bd49b.png)
- 第二步:启动每个redis实例。
- 在redis-cluster目录下创建start-all.sh执行vim start
- 然后i写入
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
然后esc,然后:wq退出
执行chmod u+x start-all.sh授权
执行./start-all.sh开启所有redis实例
执行ps aux|grep redis查看所有节点进程看是否成功
在redis源码的src在有一个文件叫redis-trib.rb
将它复制到/usr/java/redis-cluster目录下
- 第三步:使用ruby脚本搭建集群。
- 将它复制到/usr/java/redis-cluster目录下执行
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
- 这个不要随便乱用!否则要关闭redis所有的节点,然后将每个节点下aof、rdb、nodes.conf本地备份文件删除; 重启所有节点,然后重新执行脚本!
- 创建关闭集群的脚本:
[root@localhost redis-cluster]# vim shutdow-all.sh
redis01/redis-cli -p 7001 shutdown
redis01/redis-cli -p 7002 shutdown
redis01/redis-cli -p 7003 shutdown
redis01/redis-cli -p 7004 shutdown
redis01/redis-cli -p 7005 shutdown
redis01/redis-cli -p 7006 shutdown
[root@localhost redis-cluster]# chmod u+x shutdow-all.sh
集群的使用方法
Redis-cli连接集群。[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -c -c:代表连接的是redis集群