zoukankan      html  css  js  c++  java
  • 操作redis

    redis也是一个数据库,非关系型数据库,是通过键值对存储。

    关系型数据库(mysql、oracle、sql server、db2、sqlite

            Sql)

            数据存在磁盘上

        非关系型数据库mongodb、redis

            没有表

            sql

            get('k')#获取数据

            set('xx')#添加数据

            redis数据全部都是存在内存里面。

            redis本身性能是非常好的,每秒支持30w次的读写。

            可以通过在磁盘备份,实现持久化。比如常用session可以写入。默认端口6379

    ##操作redius

    import redis

    r = redis.Redis(host='192.168.0.0',password='HK139bc&*',db=1,port=6379)

    #使用redis.Redis方法连接

    #增删改查

    # r.set('niuhanyang','帅!') #数据库里面新增一个值k-v值

    #修改也是set

    # r.delete('niuhanyang')

    #r.setex('python_123','哈哈哈',20)  #设置key的失效时间,最后这个参数是秒

    # hwt = r.get('hwt')   #redius获取数据  结果有b  是二进制

    # print(hwt.decode())  #吧二进制装维字符串

    # print(r.keys('*xxx*'))#获取到所有的key 放入到list中,可以搭配*进行模糊查询

    # print(r.get('sdfsdf'))#如果key不存在 结果none

    # r.set('天蝎座:mpp','呵呵呵')#通过:可以添加文件夹

    # r.get('天蝎座:mpp')

    上面操作都是针对 string类型

    # for k in r.keys():  #删除所有的key

    # r.delete(k)

    哈希类型  hash  相当于 嵌套字典  key的名字不能重复

    # r.hset('stu_info','刘伟','1m8 100w存款')

    # r.hset('stu_info','张流量','浪,为了不交作业,故意让狗咬他')

    # r.hset('stu_info','董春光','为了不交作业,找了一条狗咬张流量,然后陪张流量去医院')

    # print(r.hget('stu_info','张流量').decode())  #指定大key和小key获取对应的数据

    # print(r.hgetall('stu_info'))  #获取里面所有的k和-v 指定大key

    # stu_info  = r.hgetall('stu_info')

    # r.hdel('stu_info','gyx')  #删除指定key

    # r.delete('stu_info')  #删除整个key

    r.expire('aaa',100) #第一个key设置失效时间

    new_stu_info = {}

    # for k,v in stu_info.items():

    #               new_stu_info[k.decode()] = v.decode()

    # print(new_stu_info)

    # print(r.type('stu_info'))  #查看key是什么类型的

    # print(r.type('zll'))

    # s='呵呵'

    # s.encode() #把字符串转成二进制

    # hwt = b'sdfsdfsdf'

    # hwt.decode()  #把bytes类型转成字符串

    练习将表中数据写入redius

    #pymysql、json、redis

    #1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour

    #2、查到所有数据返回类似[ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"niuhayang","is_admin":1}]

    #3、循环这个list,取到usernamer,把username当做key

    #4、再把这个小字典转成json,存进去就ok。

    import pymysql,json,redis

    r = redis.Redis(host='118.24.3.40',password='HK139bc&*',db=1,port=6379)

    conn=pymysql.connect(host='118.24.3.40',user='jxz',passwd='123456',db='jxz',charset='utf8')

    cur = conn.cursor(cursor=pymysql.cursors.DictCursor)

    cur.execute('select * from my_user;')

    all_data = cur.fetchall()

    for data in all_data:

                       k = data.get('username')

                       r.hset('stu_info_nhy',k,json.dumps(data))#json转为string写入

    cur.close()

    conn.close()

    #点击右键console,select 数据库 操作set get  可以使用 flushdb清楚数据库

  • 相关阅读:
    shutil的一些基本用法
    python用random产生验证码,以及random的一些其他用法
    hashlib 文件校验,MD5动态加盐返回加密后字符
    python中logging日志基本用法,和进程安全问题
    用递归函数得到目录下的所有文件
    python装饰器
    列表推导式三种模式和生成器
    vue.js响应式原理解析与实现
    Promise详解
    三分钟教你同步 Visual Studio Code 设置
  • 原文地址:https://www.cnblogs.com/cslw5566/p/9026508.html
Copyright © 2011-2022 走看看