简介

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. 解决VM提示:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary files.

    问题: 在开启虚拟机的时候报: VMware Workstation cannot connect to the virtual machine. Make sure you have rights ...

  2. 支持开源,推动Orchard

    希望正在研究果园,和对果园感兴趣的,加入Orchard高级开发群,进行交流和讨论及深入研究Orchard开发,我们致力寻求志同道合推动Orchard发展的屌丝!!! 干净.专注.社区力量的圈子

  3. CSS-高度塌陷问题

    目录 CSS-高度塌陷问题 表现 产生的原因 高度塌陷的解决办法: BFC相关 CSS-高度塌陷问题 表现 例如: HTML: <div class="first"> ...

  4. 2017 SCNUCPC 解题报告

    校内赛题目.解题思路.参考代码一览 A. Blackstorm's Blackstore Problem Description Blackstorm is going to open a black ...

  5. 修改 this 指向

    封装函数 f,使 f 的 this 指向指定的对象 function bindThis(f, oTarget) { if(f.bind){ return f.bind(oTarget); }else{ ...

  6. mysql 中表和数据库名称不要使用 '-' 命名

    mysql 中表和数据库名称不要使用 '-' 命名 若使用这个符号,比如 my-name 做为数据库表名称 那么在 sql 中必须如下: select * from `my-name`

  7. Git应用—03分支管理和冲突解决(转载)

    Git 分支管理和冲突解决 https://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. ...

  8. 移植marvell poncat3 demo板的总结

    1.arm cpu自带的bootrom, 已经初始化好串口.SPI等外设,只要硬件设置好从SPI FLASH启动,则cpu自带的bootrom会自动打印出一些信息,显示出从SPI FLASH启动,驱动 ...

  9. ionic打包报错Execution failed for task ':processDebugResources'

    ionic 打包的时候报了这样一个错误:Execution failed for task ':processDebugResources' 分析: compile "com.android ...

  10. 跨站请求伪造(CSRF)

    1. 什么是跨站请求伪造(CSRF)  CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者session Riding,通常缩 ...