操作redis

Posted 测试的自我放逐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作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清楚数据库

 

以上是关于操作redis的主要内容,如果未能解决你的问题,请参考以下文章

redis常用操作

redis常用操作 redis操作键值 redis安全设置

redis python 操作 Python操作Redis数据库

Python操作Redis数据库—redis库(可直接使用的模板通用操作)

Python操作Redis数据库—redis库(可直接使用的模板通用操作)

Python操作Redis数据库—redis库(可直接使用的模板通用操作)