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
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
GeoPandas是一个开源的Python库,旨在简化地理空间数据的处理和分析。它结合了Pandas和Shapely的能力,为Python用户提供了一个强大而灵活的工具来处理地理空间数据。以下是关于GeoPandas的详细介绍: 一、GeoPandas的基本概念 1. 定义 GeoPandas是建立在Pandas和Shapely之上的一个Python库,用于处理和分析地理空间数据。 它扩展了Pandas的DataFrame和Series数据结构,允许在其存储和操作地理空间几何图形。 2. 核心数据结构 GeoDataFrame:GeoPandas的核心数据结构,是Pandas DataFrame的扩展。它包含一个或多个列,其至少一列是几何列(geometry column),用于存储地理空间几何图形(如点、线、多边形等)。 GeoSeries:GeoPandas的另一个重要数据结构,类似于Pandas的Series,但用于存储几何图形序列。 二、GeoPandas的功能特性 1. 读取和写入多种地理空间数据格式 GeoPandas支持读取和写入多种常见的地理空间数据格式,包括Shapefile、GeoJSON、PostGIS、KML等。这使得用户可以轻松地从各种数据加载地理空间数据,并将处理后的数据保存为所需的格式。 2. 地理空间几何图形的创建、编辑和分析 GeoPandas允许用户创建、编辑和分析地理空间几何图形,包括点、线、多边形等。它提供了丰富的空间操作函数,如缓冲区分析、交集、并集、差集等,使得用户可以方便地进行地理空间数据分析。 3. 数据可视化 GeoPandas内置了数据可视化功能,可以绘制地理空间数据的地图。用户可以使用matplotlib等库来进一步定制地图的样式和布局。 4. 空间连接和空间索引 GeoPandas支持空间连接操作,可以将两个GeoDataFrame按照空间关系(如相交、包含等)进行连接。此外,它还支持空间索引,可以提高地理空间数据查询的效率。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值