zoukankan      html  css  js  c++  java
  • 【Redis】数据库相关操作

    一、前提

      在 cmd 中已执行 pip install redis  安装完成 数据库(redis)模块

    二、数据库相关

      1. 数据库分为关系型数据库、非关系型数据库

        关系型数据库:mysql、oracle、sql server、sqlite
        非关系型数据库(Nosql),以键值对存储(key-value):mongdb、redis

      2. Redis操作

     1 import redis
     2 
     3 r = redis.Redis(host="*.*.*.*",
     4                 password="**",
     5                 port=6379,
     6                 db=0,
     7                 decode_responses=True)# 解决获取的值类型是bytes字节问题,自动转换为字符串    
     8 
     9 #str
    10 r.expire("tqz_stu",100) #对key设置过期时间
    11 r.set("CHJ_Test","852c951d",100) #新增和修改
    12 print(r.get("CHJ_Test")) #获取数据
    13 r.delete("CHJ_Test") #删除数据
    14 
    15 #二进制,字节型
    16 result = r.get("CHJ_Test")
    17 result.decode()#若连接redis时已自动转换字符串则不需要执行.decode(),否则需要执行.decode() 转换为字符串
    18 r.exists("CHJ_Test") #它返回的是0和1,0代表不存在,1代表存在
    19 r.type("CHJ_Test") #查key的类型
    20 
    21 #hash 哈希类型 k - v
    22 
    23 r.hset("tqz_stu","wsc",'{"id":1,"username":"xxx"}') #新增和修改
    24 r.hset("tqz_stu","chj",'{"id":2,"username":"chj"}')#新增和修改
    25 r.hset("tqz_stu","yhl",'{"id":3,"username":"yhl"}')#新增和修改
    26 r.set("tqz:wsc","abc")
    27 r.set("tqz:chj","abc1")
    28 print(r.hget("tqz_stu","wsc"))
    29 d = {}
    30 for k,v in r.hgetall("tqz_stu").items():
    31     k = k.decode()
    32     v = v.decode()
    33     d[k] = v
    34 print(d)
    35 print(r.keys()) #获取当前数据库里面的所有key
    36 print(r.keys("*stu*"))
    37 r.hdel("tqz_stu","wsc")#删除一个或多个哈希表字段
    38 r.delete("tqz_stu")
    39 r.flushdb() #只清空当前数据库的数据
    40 r.flushall() #清空所有数据库里面的所有数据

      3. redis迁移

     1 import redis
     2 r = redis.Redis(host="*.*.*.*",
     3                 password="*",
     4                 port=6379,
     5                 db=0,
     6                 decode_responses=True)#0-15
     7 
     8 r2 = redis.Redis(host="*",
     9                 password="*",
    10                 port=6379,
    11                  db=2,
    12                 decode_responses=True)#0-15
    13 
    14 #1、获取所有的key
    15 #2、判断key的类型
    16 #3、根据key的类型来使用set或者hset
    17 
    18 for key in r.keys():
    19     if r.type(key) == "string":
    20         value = r.get(key)
    21         r2.set(key,value)
    22     elif r.type(key) == "hash":
    23         hash_all = r.hgetall(key)
    24         for k,v in hash_all.items(): #循环hash类型里面所有的k-v
    25             r2.hset(key,k,v)
  • 相关阅读:
    死磕Spring之IoC篇
    死磕Spring之IoC篇
    死磕Spring之IoC篇
    死磕Spring之IoC篇
    Linux解决 -bash: nc: command not found问题
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/exceptions/YarnException
    flink配置参数
    Joins in Continuous Queries
    Linux中的tar命令
    Table API&SQL和常见问题总结
  • 原文地址:https://www.cnblogs.com/huajie-chj/p/14326018.html
Copyright © 2011-2022 走看看