zoukankan      html  css  js  c++  java
  • redis数据库持久化

    持久化
    redis提供了两种数据备份方式,一种是RDB,另外一种是AOF,以下将详细介绍这两种备份策略:
     

     
    Python 操作redis
    1. 安装python-redis:
    pip install redis
    2. 新建一个文件比如redis_test.py,然后初始化一个redis实例变量,并且在ubuntu虚拟机中开启redis。比如虚拟机的ip地址为192.168.174.130。示例代码如下:
    # 从redis包中导入Redis类
    from redis import Redis
    # 初始化redis实例变量
    xtredis = Redis(host='192.168.174.130',port=6379)
    3. 对字符串的操作:操作redis的方法名称,跟之前使用redis-cli一样,现就一些常用的来做个简单介绍,示例代码如下(承接以上的代码):

    # 添加一个值进去,并且设置过期时间为60秒,如果不设置,则永远不会过期
    xtredis.set('username','xiaotuo',ex=60)
    # 获取一个值
    xtredis.get('username')
    # 删除一个值
    xtredis.delete('username')

    4. 对列表的操作:同字符串操作,所有方法的名称跟使用redis-cli操作是一样的:

    # 给languages这个列表往左边添加一个python
    xtredis.lpush('languages','python')
    # 给languages这个列表往左边添加一个php
    xtredis.lpush('languages','php')
    # 给languages这个列表往左边添加一个javascript
    xtredis.lpush('languages','javascript')

    # 获取languages这个列表中的所有值
    print xtredis.lrange('languages',0,-1)
    > ['javascript','php','python']

    5. 对集合的操作:

    # 给集合team添加一个元素xiaotuo
    xtredis.sadd('team','xiaotuo')
    # 给集合team添加一个元素datuo
    xtredis.sadd('team','datuo')
    # 给集合team添加一个元素slice
    xtredis.sadd('team','slice')

    # 获取集合中的所有元素
    xtredis.smembers('team')
    > ['datuo','xiaotuo','slice'] # 无序的

    6. 对哈希(hash)的操作:

    # 给website这个哈希中添加baidu
    xtredis.hset('website','baidu','baidu.com')
    # 给website这个哈希中添加google
    xtredis.hset('website','google','google.com')

    # 获取website这个哈希中的所有值
    print xtredis.hgetall('website')
    > {"baidu":"baidu.com","google":"google.com"}

    7. 事务(管道)操作:redis支持事务操作,也即一些操作只有统一完成,才能算完成。否则都执行失败,用python操作redis也是非常简单,示例代码如下:

    # 定义一个管道实例
    pip = xtredis.pipeline()
    pip = xtredis.pipeline()
    pip.set('username', 'xiaomei')
    pip.set('school', 'qinghua')
    pip.execute()

    8. 事务(管道)操作:redis支持事务操作,也即一些操作只有统一完成,才能算完成。否则都执行失败,用python操作redis也是非常简单,示例代码如下:  

    #订阅
    from redis import Redis
    ps = xtredis.pubsub()
    ps.subscribe('email')
    while True:
    for item in ps.listen():
    if item['type'] == 'message':
    data = item.get('data')
    print(data.decode('utf-8'))
    #发布
    from redis import Redis
    xtredis = Redis(host='192.168.254.41', port=6379)
    xtredis.publish('email', 'xxx@qq.com')

     
     
    以上便展示了python-redis的一些常用方法,如果想深入了解其他的方法,可以参考python-redis的源代码(查看源代码pycharm快捷键提示:把鼠标光标放在import Redis的Redis上,然后按ctrl+b即可进入)。

    13.发布/订阅操作:
    • 给某个频道发布消息:
    publish channel message
    [root@zxw9 redis-5.0.0]# redis-cli
    127.0.0.1:6379> PUBLISH 80 nihao
    (integer) 1


    • 订阅某个频道的消息:
    subscribe channel

    127.0.0.1:6379> SUBSCRIBE 80
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "80"
    3) (integer) 1


    1) "message"
    2) "80"
    3) "nihao"

  • 相关阅读:
    java学习笔记 --- 网络编程(网络的基础知识)
    java学习笔记 --- 多线程(线程安全问题——同步代码块)
    java学习笔记 --- 多线程(多线程的控制)
    java学习笔记 --- 多线程(多线程的创建方式)
    java学习笔记 --- 多线程(1)
    java学习笔记 --- IO流小结
    java学习笔记 --- IO(3)
    java学习笔记 --- IO(2)
    java学习笔记 --- IO(1)
    把测试错误的图像重新挑选出来进行测试
  • 原文地址:https://www.cnblogs.com/itzhao/p/11280311.html
Copyright © 2011-2022 走看看