python 之操作redis数据库(非关系型数据库,k-v)

数据库:    1. 关系型数据库
  • 表结构
    2. 非关系型数据库 nosql (k - v  速度快),常用的时以下三种:
  • memcache 存在内存里
  • redis 存在内存里
  • mangodb 数据还是存在磁盘上
Redis里的数据类型有String 和hash类型,下面主要是对Redis 的一些操作。

一、String类型

r = redis.Redis(host=‘localhost‘,port=6379,db=3)
r.set(‘nancy2‘,‘201801211505‘) #set数据
print(r.get(‘nancy‘)) # b‘201801211505‘
print(r.get(‘unexsitkey‘)) #->None
print(r.get(‘nancy1‘).decode()) #redis 里面取出来的数据都是bytes类型,所有要用decode()方法转成字符串 ->201801211505
r.delete(‘nancy‘) #删除一个
r.setex(‘nancy_session‘,‘aaabb66‘,‘20‘) #可以指定key的失效时间,最后一个单位,单位是秒
r.set(‘redis:nancy‘,‘python000‘)
r.set(‘redis:nancy1‘,‘redis00123‘)
r.set(‘redis1:kate‘,‘redis11‘)
print(r.keys())#byte 类型,list 所有的key
print(r.keys(‘redis*‘)) #以txz开头的key,byte 类型,-> [b‘redis:nancy1‘, b‘redis:nancy‘, b‘redis1:kate‘]
print(r.type(‘redis:nancy‘))  #-> b‘string‘

注意: set get delete setex 都是针对redis里的string类型

二、hash类型

r.hset(‘sessions‘,‘lily‘,‘167890‘)
r.hset(‘sessions‘,‘kate‘,‘34901‘)
value = r.hget(‘sessions‘,‘nancy‘) #获取数据
print(value)
value1 = r.hget(‘session‘,‘unexsit‘)#不存在返回None
print(value1)
redis_data = r.hgetall(‘sessions‘) #获取hash类型里所有的数据,数据类型是字典
all_date = {}
for k,v in redis_data.items():
    k = k.decode()
    v = v.decode()
    all_date[k] = v
print(redis_data)#byte 型的字典,{b‘kate‘: b‘34901‘, b‘lily‘: b‘167890‘}
print(r.type(‘sessions‘)) #获取key的类型 -> b‘hash‘

原文地址:https://www.cnblogs.com/nancyzhu/p/8338141.html

时间: 2024-11-05 16:06:18

python 之操作redis数据库(非关系型数据库,k-v)的相关文章

mongo数据库--非关系型数据库

mongo数据库--非关系型数据库

初识关系型数据库(SQL)与非关系型数据库(NOSQL)

一.关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部分,   员工表 001 用户表,用户名.密码 分类表 和 商品表, 一对多关系. 优点:①数据之间有关系,进行数据的增删改查时非常方便的. ②关系型数据库 有事务操作. 保证数据的完整性 缺点:1.因为数据和数据之间有关系的,关系是由底层大量算法保证 大量算法会拉低系统运行速度 大量算法会消耗系统资源 2.海量数据的增删改查时会显得无能为力. 很可能宕机 3

非关系型数据库redis-java基本操作

概述 redis是一个key-value的nosql数据库(非关系型数据库).支持存储的value类型包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.为了保证效率,数据都是缓存在内存中. redis执行语句 redis的命令:各种命令在这里 包下载 关于java操作redis的jar包可以使用Jed

Linux学习总结(七十五)非关系型数据库之memcached

一 非关系型数据库 非关系型数据库就是NoSQL,关系型数据库代表MySQL对于关系型数据库来说,是需要把数据存储到库.表.行.字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗费时间和资源,尤其是数据是需要从磁盘里去检索NoSQL数据库存储原理非常简单(典型的数据类型为k-v),不存在繁杂的关系链,比如mysql查询的时候,需要找到对应的库.表(通常是多个表)以及字段.NoSQL数据可以存储在内存里,查询速度非常快NoSQL在性能表现上虽然能优于关系型数据库,但是它并不能完全替

关系型数据库、非关系型数据库

2019-02-25  20:38:36 转自 https://www.cnblogs.com/zylq-blog/p/7595979.html 关系型数据库和非关系型数据的比较 一.关系型数据库 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织优点:1.易于维护:都是使用表结构,格式一致:2.使用方便:SQL语言通用,可用于复杂查询:3.复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询.缺点:1.读写性能比较差,尤其是海量数据的高效率读写:2.固定的表

Python3网络爬虫实战-34、数据存储:非关系型数据库存储:Redis

Redis 是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单,在本节我们介绍一下 Python 的 Redis 操作,主要介绍 RedisPy 这个库的用法. 1. 准备工作 在本节开始之前请确保已经安装好了 Redis 及 RedisPy库,如果要做数据导入导出操作的话还需要安装 RedisDump,如没有安装可以参考第一章的安装说明. 2. Redis.StrictRedis RedisPy 库提供两个类 Redis 和 StrictRedi

python爬虫11--文件存储之非关系型数据库存储MongoDB

NoSQL,Not Only SQL,不仅仅是SQL,泛指非关系型数据库,基于键值对的,不需要经过SQL层的解析,数据之间没有耦合性,性能高. 非关系型数据库细分如下: 键值存储数据库:Redis.Voldemort.Oracle BDB: 列表存储数据库:Cassandra.HBase.Riak: 文档型数据库:CouchDB.MongoDB: 图形数据库:Neo4j.InfoGrid.Infinite Graph. 爬虫数据使用非关系型数据库原因:简单高效.爬虫数据可能存在某些字段提取失败或

非关系型数据库Redis学习(1)

NoSQL 泛指非关系型数据库 特点:1.处理超大量的数据 2.运行在便宜的pc服务器集群上  3.击碎了性能的瓶颈 Redis是一个高性能的key-value数据库,存储的value类型包括string字符串.list链表.set(集合).zset(有序集合).数据缓存在内存中,也可以周期性的把更新的数据写入磁盘,或把修改的操作写入追加的记录文件中 Redis使用场合 1. application -> Redis 2. 应用程序直接访问Redis,只有当Redis访问失败时,才访问mysql

非关系型数据库(NoSQL)——Redis安装及部署详解

在现在的互联网大潮中,NoSQL可谓是家喻户晓,Redis作为NoSQL中及其重要的一员,使我们走向架构道路的一条必经之路.作为运维工程师来说,是必须要掌握的! 既然提到了Redis数据库是非关系型数据,并且需要掌握Redis数据库.那么关于关系型数据库与非关系型数据库的基本概念是必须要了解的. 一.关系型数据库与非关系型数据库的基本概念: 数据库按照其结构可以分为关系型数据库与其他数据库,而这些其他数据库,我们统称为非关系型数据库. 1.关系型数据库 关系型数据库是一个结构化的数据库,创建在关