Fork me on GitHub

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"))

 

 

 

 

 





posted @ 2017-11-04 16:25  派对动物  阅读(230)  评论(0)    收藏  举报
Top