没有合适的资源?快使用搜索试试~ 我知道了~
Excel模板超强、超详细Redis入门教程分享.pdf
需积分: 5 0 下载量 53 浏览量
2024-05-17
21:54:41
上传
评论
收藏 309KB PDF 举报
温馨提示
试读
16页
Redis介绍: Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,因为值(value)可以是字符串(string)、哈希(Hash)、列表(list)、集合(sets)、有序集合(sorted sets)等类型。 安装与配置: 根据使用的操作系统(如Windows、Linux等),选择适合的Redis安装包进行下载和安装。 安装完成后,需要配置Redis的相关参数,如端口号、密码等。 Redis数据类型与命令: 深入了解Redis支持的数据类型及其使用场景。 学习Redis的基本命令,包括字符串操作、哈希操作、列表操作、集合操作、有序集合操作等。 持久化机制: 了解Redis的持久化机制,包括RDB(快照)和AOF(追加文件)两种方式。 学习如何配置和使用这些持久化机制,以确保数据的安全性。 事务与Lua脚本: 学习Redis的事务处理机制,了解如何使用MULTI、EXEC等命令执行事务。 了解如何使用Lua脚本在Redis中执行复杂的操作。
资源推荐
资源详情
资源评论
超强、超详细超强、超详细Redis⼊门教程【转】⼊门教程【转】
这篇⽂章主要介绍了超强、超详细Redis⼊门教程,本⽂详细介绍了Redis数据库各个⽅⾯的知识,需要的朋友可以参考下
【本教程⽬录】
1.redis是什么
2.redis的作者何许⼈也
3.谁在使⽤redis
4.学会安装redis
5.学会启动redis
6.使⽤redis客户端
7.redis数据结构 – 简介
8.redis数据结构 – strings
9.redis数据结构 – lists
10.redis数据结构 – 集合
11.redis数据结构 – 有序集合
12.redis数据结构 – 哈希
13.聊聊redis持久化 – 两种⽅式
14.聊聊redis持久化 – RDB
15.聊聊redis持久化 – AOF
16.聊聊redis持久化 – AOF重写
17.聊聊redis持久化 – 如何选择RDB和AOF
18.聊聊主从 – ⽤法
19.聊聊主从 – 同步原理
20.聊聊redis的事务处理
21.教你看懂redis配置 – 简介
22.教你看懂redis配置 -通⽤
23.教你看懂redis配置 – 快照
24.教你看懂redis配置 – 复制
25.教你看懂redis配置 – 安全
26.教你看懂redis配置 -限制
27.教你看懂redis配置 – 追加模式
28.教你看懂redis配置 – LUA脚本
29.教你看懂redis配置 – 慢⽇志
30.教你看懂redis配置 – 事件通知
31.教你看懂redis配置 – ⾼级配置
【redis是什么】
redis是⼀个开源的、使⽤C语⾔编写的、⽀持⽹络交互的、可基于内存也可持久化的Key-Value数据库。
redis的官⽹地址,⾮常好记,是redis.io。(特意查了⼀下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领
地)
⽬前,Vmware在资助着redis项⽬的开发和维护。
【redis的作者何许⼈也】
开门见⼭,先看照⽚:
是不是出乎了你的意料,嗯,⾼⼿总会有些地⽅与众不同的。
这位便是redis的作者,他叫Salvatore Sanfilippo,来⾃意⼤利的西西⾥岛,现在居住在卡塔尼亚。⽬前供职于Pivotal公司。
【谁在使⽤redis】
Blizzard、digg、stackoverflow、github、flickr …
【学会安装redis】
从redis.io下载最新版redis-X.Y.Z.tar.gz后解压,然后进⼊redis-X.Y.Z⽂件夹后直接make即可,安装⾮常简单。
make成功后会在src⽂件夹下产⽣⼀些⼆进制可执⾏⽂件,包括redis-server、redis-cli等等:
复制代码代码如下:
$ find . -type f -executable
./redis-benchmark //⽤于进⾏redis性能测试的⼯具
./redis-check-dump //⽤于修复出问题的dump.rdb⽂件
./redis-cli //redis的客户端
./redis-server //redis的服务端
./redis-check-aof //⽤于修复出问题的AOF⽂件
./redis-sentinel //⽤于集群管理
【学会启动redis】
启动redis⾮常简单,直接./redis-server就可以启动服务端了,还可以⽤下⾯的⽅法指定要加载的配置⽂件:
复制代码代码如下:
./redis-server ../redis.conf
默认情况下,redis-server会以⾮daemon的⽅式来运⾏,且默认服务端⼝为6379。
有关作者为什么选择6379作为默认端⼝,还有⼀段有趣的典故,英语好的同学可以看看作者这篇博⽂中的解释。
【使⽤redis客户端】
我们直接看⼀个例⼦:
复制代码代码如下:
//这样来启动redis客户端了
$ ./redis-cli
//⽤set指令来设置key、value
127.0.0.1:6379> set name "roc"
OK
//来获取name的值
127.0.0.1:6379> get name
"roc"
//通过客户端来关闭redis服务端
127.0.0.1:6379> shutdown
127.0.0.1:6379>
【redis数据结构 – 简介】
redis是⼀种⾼级的key:value存储系统,其中value⽀持五种数据类型:
1.字符串(strings)
2.字符串列表(lists)
3.字符串集合(sets)
4.有序字符串集合(sorted sets)
5.哈希(hashes)
⽽关于key,有⼏个点要提醒⼤家:
1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,⽽且会降低查找的效率;
2.key也不要太短,太短的话,key的可读性会降低;
3.在⼀个项⽬中,key最好使⽤统⼀的命名模式,例如user:10000:passwd。
【redis数据结构 – strings】
有⼈说,如果只使⽤redis中的字符串类型,且不使⽤redis的持久化功能,那么,redis就和memcache⾮常⾮常的像了。这说明strings类型
是⼀个很基础的数据类型,也是任何存储系统都必备的数据类型。
我们来看⼀个最简单的例⼦:
复制代码代码如下:
set mystr "hello world!" //设置字符串类型
get mystr //读取字符串类型
字符串类型的⽤法就是这么简单,因为是⼆进制安全的,所以你完全可以把⼀个图⽚⽂件的内容作为字符串来存储。
另外,我们还可以通过字符串类型进⾏数值操作:
复制代码代码如下:
127.0.0.1:6379> set mynum "2"
OK
127.0.0.1:6379> get mynum
"2"
127.0.0.1:6379> incr mynum
(integer) 3
127.0.0.1:6379> get mynum
"3"
看,在遇到数值操作时,redis会将字符串类型转换成数值。
由于INCR等指令本⾝就具有原⼦操作的特性,所以我们完全可以利⽤redis的INCR、INCRBY、DECR、DECRBY等指令来实现原⼦计数
的效果,假如,在某种场景下有3个客户端同时读取了mynum的值(值为2),然后对其同时进⾏了加1的操作,那么,最后mynum的值⼀定
是5。不少⽹站都利⽤redis的这个特性来实现业务上的统计计数需求。
【redis数据结构 – lists】
redis的另⼀个重要的数据结构叫做lists,翻译成中⽂叫做“列表”。
⾸先要明确⼀点,redis中的lists在底层实现上并不是数组,⽽是链表,也就是说对于⼀个具有上百万个元素的lists来说,在头部和尾部插⼊
⼀个新元素,其时间复杂度是常数级别的,⽐如⽤LPUSH在10个元素的lists头部插⼊新元素,和在上千万元素的lists头部插⼊新元素的速度
应该是相同的。
虽然lists有这样的优势,但同样有其弊端,那就是,链表型lists的元素定位会⽐较慢,⽽数组型lists的元素定位就会快得多。
lists的常⽤操作包括LPUSH、RPUSH、LRANGE等。我们可以⽤LPUSH在lists的左侧插⼊⼀个新元素,⽤RPUSH在lists的右侧插⼊⼀个
新元素,⽤LRANGE命令从lists中指定⼀个范围来提取元素。我们来看⼏个例⼦:
复制代码代码如下:
//新建⼀个list叫做mylist,并在列表头部插⼊元素"1"
127.0.0.1:6379> lpush mylist "1"
//返回当前mylist中的元素个数
(integer) 1
//在mylist右侧插⼊元素"2"
127.0.0.1:6379> rpush mylist "2"
(integer) 2
//在mylist左侧插⼊元素"0"
127.0.0.1:6379> lpush mylist "0"
(integer) 3
//列出mylist中从编号0到编号1的元素
127.0.0.1:6379> lrange mylist 0 1
1) "0"
2) "1"
//列出mylist中从编号0到倒数第⼀个元素
127.0.0.1:6379> lrange mylist 0 -1
1) "0"
2) "1"
3) "2"
lists的应⽤相当⼴泛,随便举⼏个例⼦:
1.我们可以利⽤lists来实现⼀个消息队列,⽽且可以确保先后顺序,不必像MySQL那样还需要通过ORDER BY来进⾏排序。
2.利⽤LRANGE还可以很⽅便的实现分页的功能。
3.在博客系统中,每⽚博⽂的评论也可以存⼊⼀个单独的list中。
【redis数据结构 – 集合】
redis的集合,是⼀种⽆序的集合,集合中的元素没有先后顺序。
集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等。我们来看例⼦:
复制代码代码如下:
//向集合myset中加⼊⼀个新元素"one"
127.0.0.1:6379> sadd myset "one"
(integer) 1
127.0.0.1:6379> sadd myset "two"
(integer) 1
//列出集合myset中的所有元素
127.0.0.1:6379> smembers myset
1) "one"
2) "two"
//判断元素1是否在集合myset中,返回1表⽰存在
127.0.0.1:6379> sismember myset "one"
(integer) 1
//判断元素3是否在集合myset中,返回0表⽰不存在
127.0.0.1:6379> sismember myset "three"
(integer) 0
//新建⼀个新的集合yourset
127.0.0.1:6379> sadd yourset "1"
(integer) 1
127.0.0.1:6379> sadd yourset "2"
(integer) 1
127.0.0.1:6379> smembers yourset
1) "1"
2) "2"
//对两个集合求并集
127.0.0.1:6379> sunion myset yourset
1) "1"
2) "one"
3) "2"
4) "two"
对于集合的使⽤,也有⼀些常见的⽅式,⽐如,QQ有⼀个社交功能叫做“好友标签”,⼤家可以给你的好友贴标签,⽐如“⼤美⼥”、“⼟豪”、
“欧巴”等等,这时就可以使⽤redis的集合来实现,把每⼀个⽤户的标签都存储在⼀个集合之中。
【redis数据结构 – 有序集合】
redis不但提供了⽆需集合(sets),还很体贴的提供了有序集合(sorted sets)。有序集合中的每个元素都关联⼀个序号(score),这便是
排序的依据。
很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,⽐如zrange、zadd、
zrevrange、zrangebyscore等等
⽼规矩,我们来看⼏个⽣动的例⼦:
//新增⼀个有序集合myzset,并加⼊⼀个元素baidu.com,给它赋予的序号是1:
复制代码代码如下:
127.0.0.1:6379> zadd myzset 1 baidu.com
(integer) 1
//向myzset中新增⼀个元素360.com,赋予它的序号是3
127.0.0.1:6379> zadd myzset 3 360.com
(integer) 1
//向myzset中新增⼀个元素google.com,赋予它的序号是2
127.0.0.1:6379> zadd myzset 2 google.com
(integer) 1
//列出myzset的所有元素,同时列出其序号,可以看出myzset已经是有序的了。
127.0.0.1:6379> zrange myzset 0 -1 with scores
1) "baidu.com"
2) "1"
3) "google.com"
4) "2"
5) "360.com"
6) "3"
//只列出myzset的元素
127.0.0.1:6379> zrange myzset 0 -1
1) "baidu.com"
2) "google.com"
3) "360.com"
剩余15页未读,继续阅读
资源评论
玖疯子
- 粉丝: 3766
- 资源: 234
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功