zoukankan      html  css  js  c++  java
  • Linux安装redis

    1. Redis简介

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

    Redis 与其他 key - value 缓存产品有以下三个特点:

    1) Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 

    2) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

    3) Redis支持数据的备份,即master-slave模式的数据备份

    Redis优势:

    1) 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

    2) 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

    3) 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。

    4) 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

    Redis与其他key-value存储有什么不同?

    1) Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

    2) Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。 

    2. Redis存储

    Redis中数据存储模式有2种:cache-only,persistence;

    cache-only即只做为缓存服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在数据恢复的手段,是一种安全性低/效率高/容易扩展的方式;

    persistence即为内存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。

    对于persistence持久化存储,Redis提供了两种持久化方法:

    Redis DataBase(简称RDB)

    Append-only file (简称AOF) 

    RDB是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 

    优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能 

    缺点:RDB是间隔一段时间进行持久化,如果持久化之间redis发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候

    Append-only file,将操作 数据以格式化指令的方式追加到操作日志文件的尾部,在append操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更,日志文件保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。AOF相对可靠,它和mysqlbin.logapache.logzookeepertxn-log简直异曲同工。AOF文件内容是字符串,非常容易阅读和解析。 

    优点:可以保持更高的数据完整性,如果设置追加file的时间是1s,如果redis发生故障,最多会丢失1s的数据;且如果日志写入不完整支持redis-check-aof来进行日志修复;AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的flushall)。 

    缺点:AOF文件比RDB文件大,且恢复速度慢。

    4. 单机版安装

    安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install make cmake gcc gcc-c++

    把源码包上传到/usr/local/software/下

    解压

    tar -zxvf redis-3.2.11.tar.gz

    进入解压后的目录,编译make

     

    如果Redis 执行 make #error "Newer version of jemalloc required"解决办法是执行:

    make MALLOC=libc 

    安装,PREFIX参数指定redis的安装目录,命令如下:

    make install PREFIX=/usr/local/software/redis

    进入安装后的路径,就是cd /usr/local/software/redis

    bin目录下执行

    cd bin

    ./redis-server

    这种方式是前端启动

    缺点是ssh命令窗口关了之后服务就会停止

    后台启动:

    redis源码包解压目录下的redis.conf复制到安装目录的bin

    cp /usr/local/software/redis-3.2.11/redis.conf /usr/local/software/redis/bin

    修改配置文件(bin下面的redis.conf):

    redis默认只能本机访问,要把下面两句改一下才能远程访问。

     

    设置后台启动 

     

    bin目录下执行./redis-server redis.conf

    测试连接

    ./redis-cli

     

    停止redis

    ./bin/redis-cli shutdown

    建议直接kill,不然有可能关不掉

    指定连接redis服务的ip和端口:

     

    查看redis状态

    ps -ef | grep redis

    修改redis密码

    在配置文件中找到如下行:

    #requirepass foobared

    去掉前面的注释,并修改为所需要的密码:

    requirepass myPassword (其中myPassword就是要设置的密码)

    设置Redis认证密码后,客户端登录时需要使用-a参数输入认证密码,不添加该参数虽然也可以登录成功,但是没有任何操作权限。如下:

    $ ./redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379> keys *
    (error) NOAUTH Authentication required.

    使用密码认证登录,并验证操作权限:

    $ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword
    127.0.0.1:6379> config get requirepass
    1) "requirepass"
    2) "myPassword"
    

    看到类似上面的输出,说明Reids密码认证配置成功。

    除了按上面的方式在登录时,使用-a参数输入登录密码外。也可以不指定,在连接后进行验证:

    $ ./redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379> auth myPassword
    OK
    127.0.0.1:6379> config get requirepass
    1) "requirepass"
    2) "myPassword"
    127.0.0.1:6379> 
  • 相关阅读:
    Ajax基础:3.Json
    Head First Design Patterns State Pattern
    Head First Design Patterns Template Method Pattern
    Articles For CSS Related
    Head First Design Patterns Decorator Pattern
    代码审查工具
    How To Be More Active In A Group
    Head First Design Patterns Factory Method Pattern
    Head First Design Patterns Composite Pattern
    Tech Articles
  • 原文地址:https://www.cnblogs.com/sueyyyy/p/9999713.html
Copyright © 2011-2022 走看看