# redis数据库:基于内存的高性能key-value数据库,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存;
#缺点:1、数据库容量受到物理内存的限制,不能用作海量数据库的高性能读写,因此redis适合的场景主要局限在较小数据量的高性能操作和运算上。
#使用redis的好处:
#1、速度快---因为数据存在内存中,类似于HashMap(HashMap查找和操作的时间复杂度为0),每秒可以处理10w次读写操作
#2、支持多种数据类型---支持string,list,set,sorted set,hash,单个value的最大限制是1G
#3、支持事物、操作的原子性---所谓原子性就是要么全部执行,要么全部不执行
#4、丰富的特性(过期时间)---可用于缓存,消息,按key设置过期时间,过期后数据自动被删除
#5、redis比memcached的优势:
# memcached所有值只是简单的字符串,redis多种数据类型
# redis速度比memcached快很多
# redis可以持久化其数据
#6、redis比memcached的区别:
# 存储方式:memcached把数据全部存在内存中,断电后会挂掉,数据不能操作内存大小;redis有部分数据在硬盘上,这样能保证数据的持久化
# 支持数据类型:memcached 只有简单字符串;redis 支持string、list、set、sorted set、hash
# 使用底层模式不同:它们之间底层通信方式、客户端之间通信的应用协议不一样。redis直接自己构建了VM机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求
#7、redis常见性能问题解决:
# master写内存快照,save命令调度rdbsave函数,会阻塞主线程的工作,当快照比较大时相对性能影响是非常大的,会间断性暂停服务,所以master最好不要写内存快照。
# master AOF持久化:如果不重写AOF文件,这个持久化方式对性能的影响是最小的,但是AOF文件不断增大,AOF文件过大会影响master重启的恢复速度。master最好不要做
#任何持久化工作,包括内存快照和AOF日志文件,特别是不要启用内存快照做持久。
# master调用**重写AOF文件,AOF文件重写会调用大量的cpu,
# redis主从复制的性能问题,为了主从复制的速度和连接的稳定性,slave和master最好在同一个局域网内。 #mysql里有2000w数据 redis20w的数据,如何保障redis都是热点数据
#redis 6种数据淘汰策略(回收策略)
# 从已设置的过期时间的数据集中挑选最近最少使用的数据淘汰
# 从已设置的过期时间的数据集中挑选将要过期的数据淘汰
# 从已设置的过期时间的数据集中任意选择数据淘汰
# 从数据集中挑选最近最少使用的数据淘汰
# 从数据集中任意选择数据淘汰
# 禁止驱逐数据 #请用redis和任意语言实现 import redis
r=redis.Redis(host='118.24.3.40',password='HK139bc&*',port='6379',db=10) #string数据类型 #增加(name,value,失效时间,其中失效时间单位是秒)
r.set('Name','apple',500)
#删除
r.delete('Name')
#查询(返回值为b byte类型二进制数据,如果对结果操作,建议转换为string类型)
src=r.get('Name')
src1=str(src)
print(src1[2:-1]) #输出key(带info字样)
print(r.keys('*info')) #判断key值是否存在
r.exists('Name')
#清空数据库
#r.flushdb() #哈希类型
#增加(name,key,value)
r.hset('AA','aa','value')
#设置失效时间
r.expire('AA',500)
#查看失效时间
r.ttl('AA')
#查找---获取指定小key里面数据
r.hget('AA','aa')
#查找---所有key
r.hgetall('AA')
#删除---小key
r.hdel('AA','aa')
#删除---大key
r.delete('AA')

Python-----redis数据库的更多相关文章

  1. Python之操作redis数据库

    使用redis模块 一.操作redis 1.添加信息 (1)直接建key-value信息: 右键-Add New Key,手动添加key和value 右键-Console,打开控制台,写入命令 (2) ...

  2. Python使用Redis数据库

    Redis 简介 Redis是开源的高性能Key-Value数据库,可以用于缓存等用途. Redis可以提供事务和持久化支持保证并发安全性,并提供TTL(time to life)服务. 使用Redi ...

  3. redis python 操作 Python操作Redis数据库

    原文章于此:https://www.cnblogs.com/cnkai/p/7642787.html 有个人修改与改正 Python操作Redis数据库   连接数据库 StrictRedisfrom ...

  4. python爬取大众点评并写入mongodb数据库和redis数据库

    抓取大众点评首页左侧信息,如图: 我们要实现把中文名字都存到mongodb,而每个链接存入redis数据库. 因为将数据存到mongodb时每一个信息都会有一个对应的id,那样就方便我们存入redis ...

  5. python学习笔记(十六)python操作redis数据库

    Redis是一个key-value存储系统,它支持丰富的数据类型,如:string.list.set.zset(sorted set).hash. Redis特点 Redis以内存作为数据存储介质,所 ...

  6. Redis数据库的使用与介绍

    本周11-15号开始用Redis数据库在现有的平台基础上开发一个独立模块,这是一个边学习.边记录.边交流.边开发.边总结的过程.大部分随笔都是个人的“工作日志”,旨在记录自己学习过程中收集的一些资料, ...

  7. python操作数据库之批量导入

    python操作数据库之批量导入 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其他语言制作的 ...

  8. 关于Redis数据库 ---- 基础篇

    Redis数据库也被称为数据结构数据库,因为存储基于key-value模式. 其中,value值可以为字符串(string),哈希(map),列表(list),集合(set)和有序集合(zset). ...

  9. linux下redis数据库的简单使用

    一.redis简介 Redis是一个key-value存储系统.和 Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持list ...

  10. Redis数据库概述

    Redis数据库概述 Redis是什么 redis是一个高性能的key-value存储系统.支持的value类型相对更多,包括string,list,set,zset(sorted set --有序集 ...

随机推荐

  1. MySQL 中的运算符

    1.算数运算符 MySQL 支持的算术运算符包括加.减.乘.除和模运算. 运算符 作用 + 加法,获得一个或多个值的和 - 减法,从一个值中减去另一个值 * 乘法,得到两个或多个值的乘积 /,div ...

  2. NodeJs之fs

    NodeJs版本:4.4.4 fs的实用方法 查看文件信息(fs.stat) 定义:fs.stat(path, callback) var fs = require('fs'); fs.stat('t ...

  3. Django-ORM 复习

    老师博客 https://www.cnblogs.com/yuanchenqi/articles/6083427.html day51 表与表之间的关系 一对一 一对多(多对一) 多对多 A表依赖B表 ...

  4. pom文件中maven-assembly-plugin插件学习

    一.使用场景 如果项目是微服务架构,可能用到这个插件的概率比较高,平时普通的项目不需要这样的实现方式. 如果项目内的一部分通用功能,不需要挨个引用,则需要将通用功能部分达成jar包. 二.Maven- ...

  5. vue-resource和vue-async-data两个插件的使用

    vue-resource和vue-async-data两个插件的使用,看了一下文档http://cn.vuejs.org/guide/plugins.html#u5DF2_u6709_u63D2_u4 ...

  6. android studio: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution o

    今天在运行部署项目时logcat弹出下列错误: -- ::-/? E/Zygote: v2 -- ::-/? I/libpersona: KNOX_SDCARD checking this -- :: ...

  7. SQL Server 权限控制

    根据数据库Schema限制用户对数据库的操作行为 授予Shema dbo下对象的定义权限给某个用户(也就是说该用户可以修改架构dbo下所有表/视图/存储过程/函数的结构) use [Your DB N ...

  8. easyUI的汇总列,在前端生成

    1.easyUI初始化,启用汇总列,showFooter:true 2.后台json有默认的footer的值 {"total":28,"rows":[ {&qu ...

  9. ubuntu设置分辨率

    前言 装过ubuntu的虚拟机人应该都知道,刚刚装完系统时,分辨率小的令人发指,根本就不能愉快的使用,所以必须调整,但是有些分辨率ubuntu里面也没有,这就需要我们自己自定义. 自定义分辨率 1. ...

  10. jquery九大选择器的用法举例

    1:基本选择器 改变 id 为 one 的元素的背景色为 #0000FF" $("#one").css("background","#000 ...