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/

---------------------------------------------------

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

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

感谢支持!

---起个名忒难

--------------------------------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容