Redis—第1周—introduce

Redis—第一周—introduce

 

一.redis的优点

1.速度快,跑在内存中

将数据存入内存中,由C语言编写单机的代码数大概在22000行。不依赖外部的库。redis是单线程。一级缓存比二级缓存快,二级缓存比内存快,在使用内存的时候,每秒可以达到千万级别的读写,读写延迟在80ns,访问的宽带可以达到5GB。

 

2.可以持久化

对数据的更新将异步保存在磁盘上,磁盘上的数据在开机后,dump到内存中。分为AOF和RDB两种。

 

3.支持多种数据结构

基于key-value,类似于python或者mongodb的语法name:123这种对应的。支持字符串,哈希,列表,集合,有序集合。又衍生出位图,hyperloglog,GRO(地理信息),衍生出来的机构还是在5中结构里面,每一种数据类型都有自己的编码方式。

 

4.支持多种的变成语言

比如java.python,php,lua ,ruby等等

 

5.功能比较丰富

支持发布订阅,lua脚本,简单事务,pipeline

 

6.主从复制,高可用,分布式

主从复制是高可用和分布式的一个基础。

 

7.应用场景

缓存,计数器,消息队列,排行榜,社交网络(非常匹配)

 

二.redis的安装

因为作者比较傲娇。windows虽然有补丁。还是推荐在linux下部署。

可以使用yum 安装或二进制包安装

以centos 7.2为例

yum

yum install epel-release -y

yum install redis*  -y

 

二进制包

wget http://download.redis.io/redis-stable.tar.gz

yum install gcc-c++ tcl

tar xf redis-stable.tar.gz

ln -s /redis-stable.tar.gz redis

cd redis/deps

make hiredis jemalloc linenoise lua

make

make test

make install 

 

 redis bin 命令

redis-server         启动redis服务器

redis-cli                客户端程序

redis-benchmark  基准测试工具

redis-check-aof     aof持久化修复工具

redis-check-dump  rdb持久化修复工具

redis-sentinel         启动sentinel节点

 

redis启动分为3种

redis-server        使用默认配置启动redis

redis-server /etc/redis.conf      使用配置文件启动

生产环境建议使用配置文件使用,在每一个参数文件中可以修改不同的端口号,实现一台主机多个实例。

 

redis.conf常用配置

daemonize    设置为yes,则在后台启动

port                单主机多实例时候更改端口

logfile             系统日志文件

dir                  工作的日志存入目录

 

 

三.Redis API

通用命令

通用命令

keys                            一般不在生产环境中使用,数据量很大会阻塞其他命令,可以在从节点使用,也可以用scan命令

keys                           计算所有的数据键
keys *                        打印所有的key
keys he*                    查询he的键值
keys he[h-l]*              查询第三个字母在h-l间的键值

dbsize                        算出key总数
exists keys                 判断key是否存在,存在返回1,不存在返回0
del key                       删除key,可删除多个,成功返回1,不存在返回nil
expire key second     设置key在多少秒后过期
ttl key                         查询当前 key的过期时间,-2表示key已经过期删除,-1表示key存在且没有过期
persist key                 去掉key的过期时间
type key                     返回key的类型

除了keys的时间复杂度为O(n),其余的都是O(1)

posted @ 2018-07-31 17:02  miranblog  阅读(49)  评论(0)    收藏  举报