Redis快速入门

第一章 简介

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

1.1 存储结构

使用键值存储 ,key = value 。key 为键名, value是键值

支持的物种数据类型如下:

Ø 字符串类型

Ø 散列类型

Ø 列表类型

Ø 集合类型

Ø 有序集合类型

1.2 内存存储和持久化

Redis 数据库的所有数据都存储在内存中。由于内存的读写速度远高于硬盘,因此Redis在性能对比其他的基于硬盘存储的数据库有巨大优势,Redis 可以在一秒内读写超过十万个键值。

将数据存放在内存中也有问题,例如,程序退出后数据容易丢失。不过redis 对持久化做了处理,可以将数据存放到硬盘中。

1.3 Redis与memcached 的区别

² 网络Io模型

Memcached 是多线程,非阻塞复用的网络模型。Redis是单线程的IO复用模型,可以将速度优势发挥到最大,如果吞吐量过大,容易阻塞。

² 内存管理

Memcached 采用预分配池的方式,Redis采用现场分配申请内存的方式。

² 存储方式

Memcached 基本只支持简单的key-value 存储,redis 出来支持key/value 外还支 list,set, sorted ,set , hash .

第二章 安装

Redis 约定,次版本号为偶数的为稳定版,为奇数的为不稳定版。

2.1 Linux 安装

安装linux 系统过程略过,直奔主题,安装Redis数据库

² 下载软件包

第一种:官网下载已经编译好的源码包,官网地址redis.io

第二种:使用wget命令

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

² tar -xvzf redis-stable.tar.gz

² cd redis-stable

² make

² make install

Redis 没有其他的外部依赖 ,安装过程比较的简单,执行make install 是为了将可执行程序复制到/usr/local/bin 目录下,以便于以后不用到安装目录就可以执行程序。make test 命令请选择性执行。

2.2 Windows 安装

听说有windows版本但没有用过

2.3 启动停止Redis

最常用的两个程序:redis-server 和 redis-cli .

redis-server : 服务器, redis-cli 命令行客户端

2.3.1 启动redis

启动redis 有两种方式:直接启动和初始化脚本启动。 分别使用与开发环境和生产环境中。

² 直接启动

直接运行redis-server 即可,redis 默认的接口为6379 .

指定端口启动,redis-server –port 6380  指定6380 为redis 接口

² 初始化脚本启动

在redis源代码目录下,有一个Utils文件夹,下面有一个名为redis_init_script 的 初始化脚本文件。使用初始化脚本文件启动步骤:

Ø 将该文件拷贝到/etc/init.d 目录下,可以修改文件名,可以不修改,修改文件名是为了更好的辨别redis 的启动接口。

REDISPORT=6379

EXEC=/usr/local/bin/redis-server

CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid

CONF=”/etc/redis/${REDISPORT}.conf”

Ø 建立需要的文件

/etc/redis 存放redis 配置文件    路径可以修改,但要与上面的路径统一

/var/redis/端口号 存放持久化文件

Ø 修改配置文件

在源码安装目录有一个名为redis.conf 的文件,这个便是配置文件,修改下面几项:

daemoniz    yes     一守护进程的方式运行

pidfile /var/run/redis_端口号.pid     设置文件PID 位置

port        端口号 设置redis 的监听端口

dir          /var/redis/端口号      设置持久化文件存放的位置

执行完上面的命令之后,可以使用 /etc/init.d/redis_端口号 start  来启动Redis 了 ,而后需要执行下面命令,是Redis 跟随系统启动

sudo update-rc.d redis_端口号   defaults

2.3.2 停止Redis

强制终止redis 进程有可能会导致数据丢失。正确的停止Redis的方法是 发送shutdown 命令,语法格式:Redis-cli   shutdown 。或者使用kill 命令 ,杀死进程pid的方式也可以

redis-cli -h 127.0.0.1 -p 6379  指定redis 主机 和监听端口

redis-cli ping               测试客户端与redis的链接是否正常,正常收到pong

第三章 数据类型

Redis 支持5种数据类型,说明如下:

3.1字符串

Redis 字符串是一个字节序列。在 Redis 中字符串是二进制安全的,这意味着它们没有任何特殊终端字符来确定长度,所以可以存储任何长度为 512 兆的字符串。

示例

redis 127.0.0.1:6379> SET name “yi”

OK

redis 127.0.0.1:6379> GET name

“yi”

在上面的例子中,SET 和 GET 是 Redis 命令,name 和 “yiibai” 是存储在 Redis 的键和字符串值。

3.2哈希

Redis哈希是键值对的集合。 Redis哈希是字符串字段和字符串值之间的映射,所以它们用来表示对象。

示例

redis 127.0.0.1:6379> HMSET user:1 username yiibai password yiibai points 200

OK

redis 127.0.0.1:6379> HGETALL user:1

1) “username”

2) “yi”

3) “password”

4) “yi”

5) “points”

6) “200”

在上面的例子中,哈希数据类型用于存储包含用户基本信息的用户对象。这里 HSET,HEXTALL 是 Redis 命令同时 user:1 也是一个键。

3.3列表

Redis 列表是简单的字符串列表,通过插入顺序排序。可以添加一个元素到 Redis 列表的头部或尾部。

示例

redis 127.0.0.1:6379> lpush tutoriallist redis

(integer) 1

redis 127.0.0.1:6379> lpush tutoriallist mongodb

(integer) 2

redis 127.0.0.1:6379> lpush tutoriallist rabitmq

(integer) 3

redis 127.0.0.1:6379> lrange tutoriallist 0 10

1) “rabitmq”

2) “mongodb”

3) “redis”

列表的最大长度为  232 – 1 个元素(4294967295,每个列表的元素超过四十亿)。

3.4集合

Redis 集合是字符串的无序集合。在 Redis 可以添加,删除和测试成员存在的时间复杂度为 O(1)。

示例

redis 127.0.0.1:6379> sadd tutoriallist redis

(integer) 1

redis 127.0.0.1:6379> sadd tutoriallist mongodb

(integer) 1

redis 127.0.0.1:6379> sadd tutoriallist rabitmq

(integer) 1

redis 127.0.0.1:6379> sadd tutoriallist rabitmq

(integer) 0

redis 127.0.0.1:6379> smembers tutoriallist

1) “rabitmq”

2) “mongodb”

3) “redis”

注:在上面的例子中 rabitmq 被添加两次,但由于它是只集合具有唯一特性。集合中的成员最大数量为 232 – 1(4294967295,每个集合有超过四十亿条记录)。

3.5集合排序

不同的是,一个有序集合的每个成员都可以排序,就是为了按有序集合排序获取它们,按权重分值从最小到最大排序。虽然成员都是独一无二的,按权重分数值可能会重复。

示例

redis 127.0.0.1:6379> zadd tutoriallist 0 redis

(integer) 1

redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb

(integer) 1

redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq

(integer) 1

redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq

(integer) 0

redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000

1) “redis”

2) “mongodb”

3) “rabitmq”

第四章 Redis Java

详细信息可以查看这篇文章:http://www.cnblogs.com/edisonfeng/p/3571870.html

参考:http://www.yiibai.com/redis/

—————————————————

少年听雨歌楼上,红烛昏罗帐。

壮年听雨客舟中,江阔云低,断雁叫西风。

感谢支持!

—起个名忒难

——————————————————–

    原文作者:起个名忒难
    原文地址: https://www.jianshu.com/p/fc994da72d09
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞