简介

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. HDU3987(最小割最少割边)

    Harry Potter and the Forbidden Forest Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65536/ ...

  2. Javascript 自动执行函数(立即调用函数)

    开头:各种原因总结一下javascript中的自动执行函数(立即调用函数)的一些方法,正文如下 在Javascript中,任何function在执行的时候都会创建一个执行上下文,因为function声 ...

  3. Python知识点小记

    类 设置类属性必须使用类对象,若使用实例对象设置,会重新创建一个和类属性同名的实例属性 类对象可调用 类方法&静态方法, 实例对象可调用 实例方法&类方法&静态方法; 类方法和 ...

  4. 【工具相关】Web-HTML特殊字符对照表

    特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 Α Α Α Β Β Β Γ Γ Γ Δ Δ Δ Ε Ε Ε Ζ Ζ Ζ Η Η Η Θ Θ Θ Ι Ι ...

  5. React 入门学习笔记整理(八)—— todoList

    APP.js import React, { Component,createRef,Fragment} from 'react'; import Todos from './components/t ...

  6. api接口签名认证的一种方式

    请求方 try { using (var client = new HttpClient()) { StringContent content = new StringContent(strParam ...

  7. loadrunner 场景设计-目标场景设计

    场景设计-目标场景设计 by:授客 QQ:1033553122 A.   概述 Goals Types for Goal-Oriented Scenarios 在以目标为向导的场景中,定义你想实现的测 ...

  8. jpa 联表查询 返回自定义对象 hql语法 原生sql 语法 1.11.9版本

    -----业务场景中经常涉及到联查,jpa的hql语法提供了内连接的查询方式(不支持复杂hql,比如left join ,right join).  上代码了 1.我们要联查房屋和房屋用户中间表,通过 ...

  9. 我的博客:C# PHP J2ee Java Android js WP Asp.net mvc Python

    <p><A target="_blank" href="http://blog.163.com/hr_company_product/" &g ...

  10. java中传值方式的个人理解

    前言 这几天在整理java基础知识方面的内容,对于值传递还不是特别理解,于是查阅了一些资料和网上相关博客,自己进行了归纳总结,最后将其整理成了一篇博客. 值传递 值传递是指在调用函数时将实际参数复制一 ...