简介

redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同角色。

特性

存储结构:redis是远程字典服务器(Remote Dictionary Server),它以字典结构存储数据,并允许其他应用通过tcp协议读写字典内容。支持的键值数据类型有字符串类型、散列类型、列表类型、集合类型、有序集合类型。开发者可以将程序中的数据直接映射到redis中,数据在redis中的存储形式和在程序中的存储方式非常相近。

内存存储与持久化:redis所有的数据都存储在内存中。普通笔记本上redis可以在一秒内读写超过十万个键值。redis提供了对持久化的支持,可以将内存中的数据异步写入到硬盘中,保证数据不会丢失。

功能丰富:作缓存系统。redis可以为每个键设置ttl值,ttl到期后键会自动被删除。还可以限定数据占用最大的内存空间,到达空间限制后可以按照一定的规则自动淘汰不需要的键;redis列表类型键可以实现队列,并且支持阻塞式读取,很容易实现一个高性能的优先级队列;redis还支持"发布/订阅"的消息模式,可基于此构建聊天室等系统。

简单稳定:redis交互十分简单,redis提供了一百多个命令,但常用只有十几个。

安装启动及配置

安装(linux)

redis没有其他外部依赖,安装非常简单。下载源码编译就行,make install将可执行程序复制到/usr/local/bin下便于执行程序不用输入完整路径。

在官网下可下载https://redis.io/download,也可以直接wget下来:

$ wget http://download.redis.io/releases/redis-4.0.11.tar.gz

$ tar xzf redis-4.0.11.tar.gz

$ cd redis-4.0.11

$ make

启动

在进行安装后,可以看到如下的执行文件:

redis-check-aof是AOF文件修复工具

redis-check-rdb是RDB文件检查工具

redis-benchmark是性能测试工具

redis-cli是命令行客户端

redis可直接启动(开发环境)和初始化脚本启动(生产环境)

直接启动运行redis-server就行,--port参数指定端口,默认6379。

需要配置redis运行方式和持久化文件、日志文件的存储位置等,需要初始化脚本启动。redis脚本文件如下(redis源码目录下的/utils/redis_init_script:

  1. 修改脚本文件

    将脚本复制到/etc/init.d目录下,文件名改为redis_6380(我这里改为6380端口),可以通过修改端口参数REDISPORT。

    由脚本文件可以得知需要创建目录:/etc/redis和/var/redis/6380(存放redis持久化文件)

  2. 修改配置文件

    复制redis.conf文件到/etc/redis/下,改名配置文件名为6380.conf,修改参数:

    daemonize    yes

    pidfile    /var/run/redis_6380.pid

    port    6380

    dir    /var/redis/6380

  3. 开机自启动

    /etc/init.d/redis_6380 start

    chkconfig redis on

停止

kill redis的pid与redis-cli SHUTDOWN效果一样。考虑到redis有可能正在将内存中的数据同步到硬盘中,正确停止使用redis-cli较好。

#redis-cli -p 6380 SHUTDOWN

redis-cli命令行客户端

redis-cli执行默认服务器地址为127.0.0.1,端口为6379,通过-h 和-p参数指定。不加参数会进入交互模式。

命令的返回值有五种类型:

  1. 状态回复

    回复状态ok表示成功,也会直接显示状态信息,比如PING。

  2. 错误回复

    错误回复以error开头。

  3. 整数回复

    整数回复以integer开头,比如INCR递增键值返回递增后的键值。

  4. 字符串回复

    当请求一个字符串类型键的键值,或一个其他类型键中的某个元素时。请求键值不存在会返回空(nil)。

  5. 多行字符串回复

    多行字符串回复中每个字符串都以一个序号开头。

配置

redis-server启动时可以将配置文件的路径作为启动参数传递给redis-server。redis还可以通过CONFIG SET命令在不重启redis服务的情况下动态修改部分redis配置:

redis是一个字典结构的存储服务器,也就提供了多个用来存储数据的字典,可以将每个字典都理解成一个独立的数据库。每个数据库都是以一个从0开始的递增数字命名,redis默认支持16个数据库,可以通过databases修改。客户端连接后会自动选择0号数据库,可以使用SELECT更换。

redis简介及安装配置的更多相关文章

  1. redis简介、安装、配置和数据类型

    redis简介.安装.配置和数据类型 redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理. 它支持字符串.哈希表.列表.集合.有序集合, ...

  2. Redis for linux安装配置之—-源码安装

    一‘redis单实例安装配置1.下载redis源码压缩包,并将其上传至服务器/usr/local2.解压redis源码压缩包  # tar -xzvf redis-3.2.12.tar.gz3.进入r ...

  3. twemproxy 简介、安装配置

    twemproxy 简介.安装配置 http://www.xuchanggang.cn/archives/993.html

  4. redis简介及安装

    1 redis简介及安装 1.1 Redis是什么 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. 首 ...

  5. Redis简介、安装、配置、启用学习笔记

    前一篇文章有介绍关系型数据库和非关系型数据库的差异,现在就来学习一下用的较广的非关系型数据库:Redis数据库 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-v ...

  6. redis的简单安装配置

    一.简介 Redis是一种高级key-value数据库,数据可以持久化,支持的数据类型很丰富,有字符串,哈希,链表,集合和有序集合5种数据类型 Redis支持在服务器端计算集合的并,交和补集(diff ...

  7. Redis简介与安装

    目录 Redis概述与安装使用 Redis概述与安装使用 Author:SimpleWu GitHub-redis Redis简介 Redis英语全称:( REmote DIctionary Serv ...

  8. 001.Redis简介及安装

    一 Redis简介 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key-value 缓存产品有以下三个特点: ...

  9. 1、Redis简介、安装和基础入门

    -------------------------------------------------------- 主要内容包括: 1.Redis简介 2.Redis安装.启动.停止 3.Redis基础 ...

随机推荐

  1. Nginx拦截指定国家的IP

    Nginx拦截指定国家的IP 一.下载GeoIP数据库 wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz wget h ...

  2. 【Mybatis】一对一实例

    ①创建数据库和表,数据库为mytest,表为father和child DROP TABLE IF EXISTS child; DROP TABLE IF EXISTS father; CREATE T ...

  3. CSS之 :before && :after的用法,伪类和伪元素的区别

    一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...

  4. 限制Apache日志access.log、error.log文件大小

    在 Windows 下的设置例子如下: # 限制错误日志文件为 1M ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 1M& ...

  5. linux定时任务调度定系统——opencron

    linux定时任务调度定系统——opencron https://gitee.com/terrytan/opencron/#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83 一 ...

  6. JS字符串截取函数slice(),substring(),substr()的区别

    在JS中,slice().substring().substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你. 一.substring() substr ...

  7. python并发编程之线程

    操作系统线程理论 参考资料:http://www.cnblogs.com/Eva-J/articles/8306047.html 线程和python 理论知识 全局解释器锁GIL Python代码的执 ...

  8. Anaconda3 错误集合

    1. An error ocurred while starting the kernel 答:个人猜测有可能是配置文件出现问题,于是采用如下解决方法: 在终端中输入spyder --reset,重置 ...

  9. tkinter中frame布局控件

    frame控件 frame控件是将窗口分成好几个小模块,然后每个小模块中添加控件. 也就是将窗口合理的布局 由于和其他控件的操作基本一致,就不做注释了 import tkinter wuya = tk ...

  10. CSS| 框模型-border

    CSS 边框属性