# 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. C# 多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的

    C#  多线程调用静态方法或者静态实例中的同一个方法-方法内部的变量是线程安全的 using System;using System.Threading;using System.Threading. ...

  2. Dropping TSO features since no CSUM feature

    今天在虚拟机中练习docker的时候突然linux系统反复重启,一下子没有发现原因,不断打开虚拟机还是自动会关机,一下子很纳闷. 打开计算机里,一看原来虚拟机所在磁盘空间满了.怪不得 出现这个问题,清 ...

  3. 在IIS7上导出所有应用程序池的方法批量域名绑定(网站绑定)

    资料来源: http://www.2cto.com/os/201410/341882.html 一点经验:导出配置文件后,建议打开看看,如果有需要调整的需要做修改. 在IIS7+上导出所有应用程序池的 ...

  4. WWDC 17: 开发者的最初观感

    WWDC 17: 开发者的最初观感 前言 每年的 WWDC 都是 iOS 开发者集体高潮的时刻.第一天的 WWDC 带来了全新的 iOS 11.MacOS.tvOS 和 watchOS,革命性的 AR ...

  5. 物联网系统与CoAP之Hello,World

    物联网系统与CoAP Hello,World 关于CoAP与物联网系统我们在上一篇中(ps:CoAP与物联网系统)中做一个简单的介绍,接着我们便開始试试CoAP协议的应用 CoAP应用 開始之前我们须 ...

  6. 【iCore4 双核心板_ARM】例程三十五:HTTP_IAP_ARM实验——更新升级STM32

    实验现象: 核心代码: int main(void) { led.initialize(); //LED³õʼ»¯ key.initialize(); if(ARM_KEY_STATE == KEY ...

  7. 理解、学习与使用 JAVA 中的 OPTIONAL<转>

    从 Java 8 引入的一个很有趣的特性是 Optional  类.Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都 ...

  8. hdoj:2051

    #include <iostream> #include <string> #include <vector> #include <algorithm> ...

  9. java.exe和javaw.exe的区别

    相同点:二者都是Java的虚拟机,用来执行Java程序 区别: 1. javaw.exe运行程序时不会输出控制台信息 (注:“w”就是window的意思). 使用案例  start.bat(y以下代码 ...

  10. 并发编程基础之ThreadLocal

    一:概念 在多线程并发访问的情况下,为了解决线程安全,一般我们会使用synchronized关键字,如果并发访问量不是很大,可以使用synchronized, 但是如果数据量比较大,我们可以考虑使用T ...