跳至主要內容

redis

HeChuangJun约 1468 字大约 5 分钟

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
消息的订阅与发布.JPG

7. 事务

redis事务.png
redis事务.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:服务的端口号
  • 关闭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
图片7.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集群

12. java连接则用jedis