redis 学习笔记

第1章 简介    
1.1 历史与发展 
1.2 特性 
1.2.1 存储结构 

         如 dict["key"] = "value"中dict是一个字典结构变量,字符串“key”是键名,而value是键值。

 Redis是REmote Dictionary Server(远程字典服务器)

目前为止Redis支持的键值数据类型如下:

1)字符串类型

2) 散列类型

3) 列表类型

4) 集合类型

5)有序集合类型
1.2.2 内存存储与持久化 

Redis在一台普通笔记本上可以在一秒内读写超过十万个键值

Redis提供对持久化的支持,即可以将内存中的数据异步写入到硬盘中,同时不影响机型提供服务。


1.2.3 功能丰富 

越来越多的人将其用作缓存队列系统。

redis是单线程的儿memcached是多线程的
1.2.4 简单稳定 

c语音开发 3万行代码
第2章 准备 
2.1 安装Redis 
2.1.1 在POSIX系统中安装 
2.1.2 在OS X系统中安装 
2.1.3 在Windows中安装 
2.2 启动和停止Redis 
2.2.1 启动Redis 

1. 直接启动

$ redis-server

$ redis-server --port  6380

2. 通过初始化脚本启动redis


2.2.2 停止Redis 

$ redis-cli SHUTDOWN  当Redis收到SHUTDOWN信号之后,会断开所有客户端连接,然后根据配置执行持久化,最后完成退出。

Redis可以妥善处理SIGTERM信号,所以使用“kill  Redis进程的PID”也可以正常结束Redis,
2.3 Redis命令行客户端 

        redis-cli(Redis Command Line Interface)
2.3.1 发送命令 

        方式一:将命令作为redis-cli的参数执行,

$ redis-cli  -h  127.0.0.1  -p  6379     // 连接redis服务器    通过-h和-p参数可以自定义地址和端口号

$ redis-cli  PING    //测试客户端和redis是否正常连接,如果正常会返回PONG

方式二:不附带参数运行redis-cli,这样会进入交互模式,可以自由输入命令
2.3.2 命令返回值 (五种类型)

1. 状态回复

2. 错误回复

3. 整数回复

4. 字符串回复

5. 多行字符串回复
2.4 配置 

redis配置文件的模板位于源代码的根目录下redis.conf
2.5 多数据库 

      Redis默认支持16个数据库,名称以数字从1开始递增,如果要选择1号数据库:redis> SELECT   1

      然而这些以数字命名的数据库又与我们理解的数据库有所区别:

1. redis不支持自定义数据库名字,每个数据库都已编号命名,开发者必须自己记录那些数据库存储了那些数据。

2. 另外Redis也不支持每个数据库设置不同的访问密码所以一个客户端要么可以访问全部数据库,要么连一个数据也没有权限访问。

3. 最重要一点事多个数据之间并不是完全隔离的,比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。
综上,这些数据库更像是一个命名空间,而不适合存储不同应用程序的数据。
例如可以使用0号数据库存储某一个应用生产环境中的数据,使用1号数据库存储测试环境中的数据

但不适宜用0号存储A应用的数据,使用1号存储B应用的数据,不同的应用应用使用不同的Redis实例春初数据。



第3章 入门 
3.1 热身 

Redis不区分命令大小写

1. 获得符合规则的键名列表

KEYS  pattern 

2. 判断一个键是否存在

EXISTS  key   (存在返回1 否则返回零)

3. 删除键

DEL  key 【key  ...】    删除一个或多个键 返回值是删除的键的个数

由于DEL命令不支持通配符,但我们可以接哈Linux的管道和xargs命令自己实现删除所有符合规则的键:

redis-cli  KEYS  “user:*”   I  xargs  redis-cli  DEL   或者  redis-cli  DEL  ‘redis-cli  KEYS  “user:*”’  

4. 获得兼职的数据类型

TYPE key


 3.2 字符串类型 
3.2.1 介绍 

单个字符串类型键最大存储容量为512M

         字符串是其他4种数据类型的基础,其他数据类型和字符的差别从某种角度来说只是组织字符串的形式不同。
3.2.2 命令 

1. 赋值与取值

redis>SET  key  hello

OK

redis>GET key

"hello"

2. 递增数字(当存储字符串是整数形式时INCR可以让当前键值递增,当不是整数时Redis会提示错误)

3.2.3 实践 
3.2.4 命令拾遗 

1. 增加指定的整数

2. 减少指定的整数

3. 增加指定的浮点数

4. 向尾部追加值

5. 获取字符串长度

6. 同时获得/设置多个键值

7. 位操作


3.3 散列类型 
3.3.1 介绍 

散列的键值也是一种字典结构,其中存储了字段和字段值得映射,构成一个嵌套结构。但是字段值只能是字符串,不支持前数据类型。一个散列类型键最多可包含2^32-1个字段

除了散列redis其他类型同样不支持数据类型嵌套,每个元素都只能是字符串。
3.3.2 命令 
3.3.3 实践 
3.3.4 命令拾遗 
3.4 列表类型 
3.4.1 介绍 
3.4.2 命令 
3.4.3 实践 
3.4.5 命令拾遗 
3.5 集合类型 
3.5.1 介绍 
3.5.2 命令 
3.5.3 实践 
3.5.4 命令拾遗 
3.6 有序集合类型 
3.6.1 介绍 
3.6.2 命令 
3.6.3 实践 
3.6.4 命令拾遗 
第4章 进阶 
4.1 事务 
4.1.1 概述 
4.1.2 错误处理 
4.1.3 WATCH命令介绍 
4.2 生存时间 
4.2.1 命令介绍 
4.2.2 实现访问频率限制之一 
4.2.3 实现访问频率限制之二 
4.2.4 实现缓存 
4.3 排序 
4.3.1 有序集合的集合操作 
4.3.2 SORT命令 
4.3.3 BY参数 
4.3.4 GET参数 
4.3.5 STORE参数 
4.3.6 性能优化 
4.4 消息通知 
4.4.1 任务队列 
4.4.2 使用Redis实现任务队列 
4.4.3 优先级队列 
4.4.4 “发布/订阅”模式 
4.4.5 按照规则订阅 
4.5 管道 
4.6 节省空间 
4.6.1 精简键名和键值 
4.6.2 内部编码优化 
第5章 实践 
5.1 PHP与Redis 
5.1.1 安装 
5.1.2 使用方法 
5.1.3 简便用法 
5.1.4 实践:用户注册登录功能 
5.2 Ruby与Redis 
5.2.1 安装 
5.2.2 使用方法 
5.2.3 简便用法 
5.2.4 实践:自动完成 
5.3 Python与Redis 
5.3.1 安装 
5.3.2 使用方法 
5.3.3 简便用法 
5.3.4 实践:在线的好友 
5.4 Node.js与Redis 
5.4.1 安装 
5.4.2 使用方法 
5.4.3 简便用法 
5.4.4 实践:IP地址查询 
第6章 脚本 
6.1 概览 
6.1.1 脚本介绍 
6.1.2 实例:访问频率限制 
6.2 Lua语言 
6.2.1 Lua语法 
6.2.2 标准库 
6.2.3 其他库 
6.3 Redis与Lua 
6.3.1 在脚本中调用Redis命令 
6.3.2 从脚本中返回值 
6.3.3 脚本相关命令 
6.3.4 应用实例 
6.4 深入脚本 
6.4.1 KEYS与ARGV 
6.4.2 沙盒与随机数 
6.4.3 其他脚本相关命令 
6.4.4 原子性和执行时间 
第7章 管理 
7.1 持久化 
7.1.1 RDB方式 
7.1.2 AOF方式 
7.2 复制 
7.2.1 配置 
7.2.2 原理 
7.2.3 图结构 
7.2.4 读写分离 
7.2.5 从数据库持久化 
7.3 安全 
7.3.1 可信的环境 
7.3.2 数据库密码 
7.3.3 命名命令 
7.4 通信协议 
7.4.1 简单协议 
7.4.2 统一请求协议 
7.5 管理工具 
7.5.1 redis-cli 
7.5.2 phpRedisAdmin 
7.5.3 Rdbtools 
附录A Redis命令属性 
A.1 REDIS_CMD_WRITE 
A.2 REDIS_CMD_DENYOOM 
A.3 REDIS_CMD_NOSCRIPT 
A.4 REDIS_CMD_RANDOM 
A.5 REDIS_CMD_SORT_FOR_SCRIPT 
A.6 REDIS_CMD_LOADING 
附录B 配置参数索引


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值