zoukankan      html  css  js  c++  java
  • redis使用摘要

    .redis使用:

    在下载安装好redis,pycharm内也需要安装redis工具包.cmd窗口运行pip install redis后才可在pycharm

    内导入import redis来使用.

    对于已经存在的redis数据的key,再次给同一个key设置值时,数据类型必须一致,否则报错

    常用语法:

    conn.set( name, v }     结果为{ name:v }      取值: conn.get( name )

    conn.hset( name, k ,v )  结果为{ name:{k : v} }   取值:conn.hget( name, k )

    conn.hmset( name, {k1:v1, k2:v2} }  结果为{ name: {k1:v1, k2:v2} }  取值:conn.hgetall( name )

    conn.scan_iter(模糊匹配key的条件)  结果是个由所有符合条件的key组成的迭代器

    conn.keys( 模糊匹配key的条件 )  结果是所有符合条件的key组成的列表

    conn.exists( ‘key’ )  用来判断key在不在redis,结果是布尔值

    conn.delete(要删除的key)  或者 conn.delete( *[要删除的key,] )

    .redis使用技巧:

      数据结构如下:

      {
    shopping_car_2_1:{'price_policy_dict': '{
                             "1": {"valid_period_text": "1个月", "price": 9.9},
                             "2": {"valid_period_text": "3个月", "price": 69.0},
                             "3": {"valid_period_text": "6个月", "price": 99.0}

    }',
                           'title': 'Python开发21天入门',

     'id': '1'

    }

    }

    结构说明: 最外层的{}为第一层数据结构

              shopping_car_2_1:{}这个是第二层数据结构,第二层放的字典redis是支持的

      再往里就是第三层数据结构了,第三层不支持字典,

     

    1.redis因版本不同,某些版本内不支持ImageField这种models表字段的数据类型

    2.redis支持字典key的模糊查询,比如:

       shopping_car_2_* 可以匹配到rediskey是以下格式的所有: shopping_car_2_这里可是任意东西

    3.模糊匹配的语法,及结果类型

      all_keys=conn.scan_iter(shopping_2_*)  # 结果是迭代器,模糊匹配以shopping_2_开头的所有key

      for key in all_keys:   # 循环取值,注意取到的结果是redis内保存的key,而不是值

     value=conn.hgetall( key )  # hgetall取得是二层key对应的字典

     value[‘price_policy_dict’]=json.loads( value[‘price_policy_dict’] )

     # 修改第三层的json字符串字典为真正的python的字典类型.

    .redis连接池概念

    建立好一个redis连接池,每次要操作redis时就从连接池中拿建立好的连接去操作数据即可.

    项目内新建py文件,导入redis,在这里建立个连接池,在要使用redis的文件中把连接池导入.

    py内代码如下:

    import redis

    # 引入连接池概念,每次都是从连接池中拿一个连接去使用

    POOL=redis.ConnectionPool(host='127.0.0.1',port=6379,decode_responses=True)

    # 括号前为固定语法,括号内参数为(指定redis的地址,端口,自动帮我们解码)

    视图中应用时代码如下:

     from 文件路径 import POOL

    conn=redis.Redis(connection_pool=POOL)  # 指定从连接池中拿已建立好的连接

    然后即可使用conn进行redis的命令操作了.

  • 相关阅读:
    把联系人从一张卡转移到另一张卡或者从一个手机转移到另一个手机
    Echarts画折线图
    Echarts画条形图
    Echarts画饼状图
    《计算机网络》读后感
    Vue.js项目无法启动:sh: 1: vue-cli-service: not found
    《Redis入门指南(第 2 版)》读后感
    翻译:《实用的Python编程》InstructorNotes
    翻译:《实用的Python编程》TheEnd
    翻译:《实用的Python编程》09_03_Distribution
  • 原文地址:https://www.cnblogs.com/quzq/p/10022950.html
Copyright © 2011-2022 走看看