openresty模块
|
|
其中redis模块叫做lua-resty-redis,可以在上述页面进行搜索
1.一个完整的demo
使用起来不困难,也不必深究:redis的API、luajit的基本语法。
需要注意的是在openresty中已经有了类库,也就是下面require “resty.redis”
openresty模块
|
|
其中redis模块叫做lua-resty-redis,可以在上述页面进行搜索
使用起来不困难,也不必深究:redis的API、luajit的基本语法。
需要注意的是在openresty中已经有了类库,也就是下面require “resty.redis”
提示,有关ngx_lua的语法可以到如下网站搜索
|
|
|
|
5.相关类库说明
附图一张:
从https://openresty.org/cn/download.html下载最新的版本,例如·
|
|
(1) yum相关的依赖
|
|
(2) 编译安装
|
|
启动方法和nginx是一样的:
|
|
|
|
结果:
|
|
|
|
|
|
|
|
提示,有关ngx_lua的语法可以到如下网站搜索
|
|
(1) lua独立
其中content_by_lua_file是通过上面的网站查到的,这个网址应该经常用到。
(2) 脚本
|
|
(3) 缓存:
先修改脚本内容发现,返回内容不变,需要添加缓存选项(如果是生产可能会影响性能)
默认开启, 有多个使用范围
|
|
例如:
|
|
主要引入如下模块
使用scan + pipeline + del(每次扫描100个)
|
|
例如删除127.0.0.1:6380中以video开头的key,可以执行如下
|
|
redis-py并没有支持Redis Cluster。社区中有人开发了redis-py-cluster(非同一个作者)。两种方法获取。
第一:使用pip进行安装(推荐)
|
|
第三:使用源码安装(以1.3.4版本为例子,可以在release列表选取需要)
|
|
RedisCluster使用P2P实现分布式,对于每个Redis节点来说,它既存储数据又要管理分布式状态,Redis节点之间使用Gossip协议进行通信,那么对于每个节点来说,它又是客户端又是服务端。所以了解节点通信的代码很重要。
|
|
可以看出RedisCluster节点内部使用port + 10000进行通信。
|
|
clusterInit会在redis.c中初始化redis实例时候使用
|
|
|
|
|
|
(1).获取一个表的RegionLocator
|
|
(2).使用RegionLocator定位rowkey对应的Region和Region Server
|
|
其中HRegionLocation包含了Region、RegionServer等信息。
|
|
(3).RegionLocator的其他功能
|
|
|
|
(redis.c)
|
|
Redis官网提供了很多python语言的客户端(http://redis.io/clients#python),但最被广泛认可的客户端是redis-py。redis-py需要python 2.7以上版本,有关python的安装本书不会介绍,因为作为使用python语言的开发者来说这个无需介绍,主要来看一下如何获取安装redis-py,安装redis-py有三种方法:
例如项目有很多源文件,彼此关联。例如下面main.c用到了myutil.c。
|
|
|
|