zoukankan      html  css  js  c++  java
  • Redis非关系型缓存数据库集群部署、参数、命令工具

    《关系型数据库与非关系型数据库》

    关系数据库:mysql、oracle、DB2、SQL Server
    非关系数据库:Redis(缓存数据库)、MongodDB(处理海量数据)、Memcached(缓存数据库)《类型:文档型、key-value型、图形》


    《关系型数据库与非关系型数据库主要区别》
    1、数据存储方式不同
    关系型数据库存储在硬盘中,非关系型数据库存储在缓存中,在读取数据速度方面非关系型数据库相比关系型数据库要快,

    2、扩展性不同
    关系型数据库存储为表格式很容易横向扩展容易达到扩展瓶颈,而非关系型数据库是基于键值对,一个key对应一个value,数据之间

    没有耦合性扩展起来比较方便。

    3、事务性不同
    传统SQL数据库支持对事务原子性的控制,并且容易回滚,
    非关系型数据库也支持事务操作,但稳定性方面没法和关系型数据库比较,因为非关系型数据库价值是在扩展性和大数据量处理方面。

    ===============================================================================================================

    Redis的优点:

    1、读取速度快

    2、支持多种数据类型:包括key-value、string、lists

    3、支持数据的持久化,可以将内存中的数据保存到硬盘中,重启的时候可以再次加载使用

    4、支持数据的备份

    Redis集群部署

    环境:

    192.168.200.100 redis-1
    192.168.200.101 redis-2
    192.168.200.102 redis-3
    192.168.200.111 redis-4
    192.168.200.112 redis-5
    192.168.200.113 redis-6

    使用源码包安装redis

    [root@redis-1 ~]# rz
    [root@redis-1 ~]#

    redis-5.0.3.tar.gz 

    redis-5.0.3.tar.gz 分别发送到各台主机

    [root@redis-1 ~]# scp redis-5.0.3.tar.gz 192.168.200.101:/root

    [root@redis-1 ~]# scp redis-5.0.3.tar.gz 192.168.200.102:/root

    [root@redis-1 ~]# scp redis-5.0.3.tar.gz 192.168.200.111:/root

    [root@redis-1 ~]# scp redis-5.0.3.tar.gz 192.168.200.112:/root

    [root@redis-1 ~]# scp redis-5.0.3.tar.gz 192.168.200.113:/root

    解压并进行编译(此处所有主机都执行本次操作)

    [root@redis-1 ~]# tar xf redis-5.0.3.tar.gz -C /usr/src

    [root@redis-1 ~]# cd /usr/src/redis-5.0.3/

    [root@redis-1 redis-5.0.3]# make

    [root@redis-1 redis-5.0.3]# make install

    如果make继续报错,信息如下:error: jemalloc/jemalloc.h: No such file or directory

    执行 make MALLOC=libc 就行

    [root@redis-1 redis-5.0.3]# ln -sf /usr/local/redis/bin/* /usr/local/bin/

    [root@redis-1 redis-5.0.3]# cd utils/

    [root@redis-1 utils]# bash install_server.sh                      #此处一直按回车键

    --------

    Successfully added to chkconfig!

    Successfully added to runlevels 345!
    Starting Redis server...
    Installation successful!

    修改配置文件(此处所有主机都执行本次操作)

    [root@redis-1 utils]# vim /etc/redis/6379.conf

    70修改     bind 127.0.0.1 192.168.200.100               #都添加自己相应的IP地址

    [root@redis-6 utils]# /etc/init.d/redis_6379 restart
    Stopping ...
    Redis stopped
    Starting Redis server...

    查看端口

    [root@redis-1 utils]# netstat -lnpt | grep 6379
    tcp 0 0 192.168.200.100:6379 0.0.0.0:* LISTEN 22375/redis-server
    tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 22375/redis-server

    进入Redis数据库

    [root@redis-1 utils]# redis-cli
    127.0.0.1:6379> ping
    PONG                                              #PONG表示所有主机都存活

    =================================================================================================

     

     

     

     ======================================================================================

     

     

     进入Redisi数据库

    [root@redis-1 utils]# redis-cli
    127.0.0.1:6379> ping
    PONG

    查看参数

    127.0.0.1:6379> info 

    127.0.0.1:6379> set teacher liuxiang                 #set是创建
    OK
    127.0.0.1:6379> get teacher                         #get是获取
    "liuxiang"
    

      

    127.0.0.1:6379> set k2 1
    OK
    127.0.0.1:6379> set k3 1
    OK
    127.0.0.1:6379> set k4 1
    OK
    127.0.0.1:6379> set k5 1
    OK
    
    127.0.0.1:6379> set foot mail
    OK
    
    127.0.0.1:6379> keys *               #keys *是查看数据库中所有的键,不建议在生产环境中使用keys *,因为生产环境中数据量庞大,会导致数据库压力
    
    1) "k1"
    2) "teacher"
    3) "k2"
    4) "k4"
    5) "k5"
    6) "foot"
    7) "k3"
    
    127.0.0.1:6379> keys k*            #建议使用这种排除方式来查询
    1) "k1"
    2) "k2"
    3) "k4"
    4) "k5"
    5) "k3"
    

      

     

    127.0.0.1:6379> keys *
    1) "k1"
    2) "teacher"
    3) "k2"
    4) "k4"
    5) "k5"
    6) "foot"
    7) "k3"
    127.0.0.1:6379> del k5                 #删除k5的键与其相对应的值
    (integer) 1
    127.0.0.1:6379> keys *
    1) "k1"
    2) "teacher"
    3) "k2"
    4) "k4"
    5) "foot"
    6) "k3"

     

    127.0.0.1:6379> set v1 1            #创建一个v1的键值
    OK
    127.0.0.1:6379> RENAME v1 v11       #修改键值名
    OK 
    127.0.0.1:6379> get v11              #查看键值数据
    "1"
    

    127.0.0.1:6379> keys *
    1) "teacher"
    2) "k2"
    3) "v11"
    4) "foot"
    5) "k3"
    6) "k11"
    127.0.0.1:6379> RENAMENX k2 k3        #将k2键名改成k3失败,因为已经有了k3的键名
    (integer) 0                                                #返回值为0失败
    127.0.0.1:6379> RENAMENX k2 v2       #改名成功
    (integer) 1                                                 #返回值为1成功
    127.0.0.1:6379> keys *
    1) "teacher"
    2) "v11"
    3) "v2"
    4) "foot"
    5) "k3"
    6) "k11"

     

    127.0.0.1:6379> keys *
    1) "teacher"
    2) "v11"
    3) "v2"
    4) "foot"
    5) "k3"
    6) "k11"
    127.0.0.1:6379> DBSIZE 
    (integer) 6
    

    127.0.0.1:6379> SELECT 10                  #进入到10号库
    OK
    127.0.0.1:6379[10]> keys *                     #此时数据为零
    (empty list or set)
    127.0.0.1:6379[10]> SELECT 0              #进入0号默认库
    OK
    127.0.0.1:6379> keys *
    1) "teacher"
    2) "v11"
    3) "v2"
    4) "foot"
    5) "k3"
    6) "k11"

      

  • 相关阅读:
    synchronized关键字原理
    http几种请求格式总结
    logback配置
    docker部署nacos单机
    Diango migrate遇到问题
    pip安装ujson报错: error:Microsoft Visual C++ 14.0 is required
    vue watch监听新增属性
    git commit message规范与约束(全局安装)
    git commit message规范与约束(项目内安装)
    pip常用方法
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/12123680.html
Copyright © 2011-2022 走看看