redis 在windows上的 安装
下载地址:
github windows版本 https://github.com/MicrosoftArchive/redis
下载解压完成
启动 redis :
redis-server 安装路径+ redis.windows.conf
安装 redis windows 服务:
# redis 的安装与部署 6379
windows 下
===服务端===
配置 service
redis-server --service-install D:\redis\redis.windows.conf
删除 service
redis-server --service-uninstall
启动redis-server --service-start
停止 redis-server --service-stop
===客户端===
启动 redis-cli
退出 exit
===============================================
配置文件 redis.conf
daemonize yes 后台运行
pidfile --- 记录pid
port
bind ip
loglevel 日志信息
save 900 1 900s 1次写操作 -- 物理写操作一次
save 300 10
save 60 10000
dbfilename 默认物理存储 路径
====================================================================================
redis-server --service-install redis.windows.conf # 安装为 windows service服务 redis-server --service-uninstall # 卸载 redis-server --service-start # 启动 redis-server --service-stop # 停止
redis 的配置文件:
daemonize no -->> daemonize yes 是否在前端或后端运行(守护进程)
bind 127.0.0.1 默认是绑定本机 注释后 允许slaver端 连接到 master端
redis master slaver 测试:
redis-server 路径+redis.windows.conf #启动 master server 端 redis
redis-cli 启动 mster client 端
set key 123
get key ---123
redis-cli -h ip #启动 slaver 端 redis
get key --123
redis vs mongodb:
Redis 是基于内存的数据库(数据和key放在内存里)。内存满了以后就会开始自动删除数据
url一般放在redis里面,爬取到的数据放在MongoDB里面。
MongoDB,只用来保存数据。爬到的数据存到里面就不管了。
Redis, 更像一个队列,有源源不断的URL进去,有源源不断的URL出来,
URL用过一次以后不需要,随着爬取到的数据一起存入MongoDB里面
MongoDB 不是内存型数据库,只不过把所有文件索引存到内存里而已。
同样的机型,用MongoDB会比Redis存更多,但Redis响应更快。关键的是看量有多大
可以把MongoDB当成MySQL, 把Redis当成内存
数据交换用Redis. 数据持久化用MongoDB
redis 语法:
数据库切换 select 1 (默认36个数据库 默认在0) 数据类型 string 是基本数据类型 是 redis的基本数据类型 最大能存储 512 MB的数据 string 类型是二进制安全的 -- 可以为任何数据 数字 图片 序列化 对象 基本命令: 设置键值: set key value 获取 值 get key --value mget key1,key2 -- value1,value2 # 获取多个值 运算: incr key --- 将 key 对应的 value 加 1 incrby key increment 将 key 对应的 value 加 increment decr key ---- 将 key 对应的 value 减 1 decrby key decrment 将 key 对应的 value 减 decrement 追加--在原有的基础上添加 值: append key value 在原有的基础上添加 值 字符长度: strlen key 键命令: keys * 查看当前所有的key 通配符 * keys *1* 正则匹配 exits key 是否存在 1 0 真假 type key 查看键 对应值的属性 expire key seconds 设置 有效时间 ttl key 查看剩余 时间 del key 删除 键值对 hash 命令:( 存对象 属性+值 ) hash用于 存储 对象 ; 对象的格式是 键值对 命令: 设置: hset key field value | hset py name "allp" hmset key field value [field value] 获取 hget py name -- allp hgetall py 获取所有的属性和值 --- 奇数的是属性 偶数的是值 hkeys py 获取所有的属性 hvals py 获取所有的值 hlen py 属性的个数 hstrlen py name ---某个属性对应的值得长度 hexists py name ----是否存在属性 删除: hdel py name ---删除某一个属性 list命令:( 数组-- 两侧都可以进入数据) 一个键 维护多个值 添加的 顺序 设置: lpush py1 alex rpush py1 egon linsert py1 before alex name linsert py1 after egon male lrange py1 0 -1 查看所有元素 ltrim py1 0 3 只保留 索引 0到3的数据 其他的都删除 set 命令 (无序 唯一不重复 ): 设置: sadd key members(可以多个) 获取: smembers key scard key 元素个数 交集: sinter py1 py2 差集: sdiff py1 py2 并集: suinion py1 py2 判断是否在某个集合中 sismember py1 haha zset 有序集合: sorted set 按照权重排序 设置: zadd myset 权重 "xxx" 权重 "ooo" 获取: zrange myset start stop zrange py1 0 -1 zcard myset ---查看元素个数 zcount myset min max --返回权重 在 min 和max之间值 的 元素 zscore myset xxx 查看元素的权重
redis 内部实现发布订阅
信息推送
消息的格式:
类型:
subscribe:订阅成功
unsubscribe:取消订阅
message: 其他终端发布消息
命令:
订阅:
subscribe py111 可以多个频道
取消订阅:
ctrl c
发布:(另外的一端 发布消息)
publish 频道 消息
# redis.conf
配置主从
主
修改 绑定
bind ip ==== 主 master
从
bind ip ==== 从 slavor
slaveof 主ip port
登录 redis-cli -h ip主
redis-cli -h ip从 自动备份主的数据
自动完成 数据备份
与python的交互
# import redis # 引入模块
# 连接
# r=redis.StrictRedis(db=0,host="localhost",port=6379,)
# 数据操作 1 直接操作
# r.set("0","0")
# 数据操作 2 pipeline 缓存多条命令 然后一次性执行
# pipe=r.pipeline()
# pipe.set("name","hello")
# pipe.get("name")
#
# pipe.execute()
# print(r.ping())
# 自己实现封装
# class myRedis:
# def __init__(self,host,port):
# self._redis=redis.StrictRedis(host,port)
# def set(self,key,value):
# self._redis.set(key,value)
# def get(self,key):
# return self._redis.get(key)
# myr=myRedis("127.0.0.1",6379)
# print(myr.get("py5").decode("utf-8"))


浙公网安备 33010602011771号