博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis与Python交互
阅读量:4461 次
发布时间:2019-06-08

本文共 1883 字,大约阅读时间需要 6 分钟。

一、NoSQL简介

  1.   NoSQL,全名为Not Only SQL,指的是非关系型的数据库
  2.   随着访问量的上升,网站的数据库性能出现了问题,于是nosql被设计出来

优点/缺点

   优点:

  • 高可扩展性
  • 分布式计算
  • 低成本
  • 架构的灵活性,半结构化数据
  • 没有复杂的关系

   缺点:

  • 没有标准化
  • 有限的查询功能(到目前为止)
  • 最终一致是不直观的程序

分类

类型

部分代表

特点

列存储

Hbase

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

文档存储

MongoDB

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

key-value存储

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

图存储

Neo4J

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。

对象存储

db4o

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

xml数据库

Berkeley DB XML

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

 

二、redis安装

下载: 打开官网下载或者直接运行以下命令(选择你需要的版本)

sudo wget http://download.redis.io/releases/redis-3.2.6.tar.gz

 安装Redis:

 

 解压:

tar zxvf redis-3.2.6.tar.gz

 生成:进入到redis-3.2.6目录下,依次执行下面两条命令

sudo makesudo make install

 

配置文件: 一般配置文件都放在/etc/目录下

sudo cp /usr/local/redis-3.2.6/redis.conf /etc/redis/

打开redis.conf

绑定地址:如果需要远程访问,可将此行注释

bind 127.0.0.1

端口,默认为6379

port 6379

 是否以守护进程运行

  • 如果以守护进程运行,则不会在命令行阻塞,类似于服务
  • 如果以非守护进程运行,则当前终端被阻塞,无法使用
  • 推荐改为yes,以守护进程运行
daemonize no|yes

数据文件

dbfilename dump.rdb

数据文件存储路径

dir的默认值为./,表示当前目录;推荐改为
dir /var/lib/redis

 注意:当在配置文件中修改数据文件存储路径,此路径应存在;

    如果在下载目录下运行过redis-server,在使用指定配置文件启动前关闭redis-server服务;

 

使用指定配置文件启动

sudo redis-server /etc/redis/redis.conf

 

停止redis服务

sudo kill -9 redis的进程id

查看该进程:

ps -ef|grep redis

 

三、redis数据操作

redis是key-value的数据,所以每个数据都是一个键值对

键的类型是字符串

值的类型分为五种:

  • 字符串string
  • 哈希hash
  • 列表list
  • 集合set
  • 有序集合zset

数据操作的全部命令,可以查看

 

 四、Redis与Python交互

 

# encoding=utf8import redis# 连接r = redis.StrictRedis(host="localhost", port=6379)# 方法1:根据数据类型的不同,调用响应的方法r.set("a1", "good")ret = r.get("a1")print retprint type(ret) # 方法2:pipline # 缓冲多条命令,然后依次执行,减少C/S之间TCP数据包 pipe = r.pipeline() pipe.set("a2","nice") pipe.set("a3","fine") pipe.set("a4","alright") pipe.execute()

 

转载于:https://www.cnblogs.com/Mint-diary/p/9630518.html

你可能感兴趣的文章
201407-至今
查看>>
c# 应用事务
查看>>
优化杭州某著名电子商务网站高并发千万级大型数据库经验之- SQL语句优化(转)...
查看>>
WPF——TargetNullValue(如何在绑定空值显示默认字符)
查看>>
Linux之crontab
查看>>
清除浮动
查看>>
CenOS+宝塔(模拟)上线博客项目
查看>>
loadrunner Vugen-Tools General-Options-Replay设置
查看>>
redis限频
查看>>
Floyd判圈算法
查看>>
接口,lambda表达式与内部类(二)
查看>>
Phabricator是什么,代码审查工具
查看>>
Java虚拟机类加载机制
查看>>
DirectX:函数可以连接任意两个filter 分类: Direct...
查看>>
Android APP开发入门教程-Button 分类: JAVA ...
查看>>
WustOJ 1575 Gingers and Mints(快速幂 + dfs )
查看>>
js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结...
查看>>
算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
查看>>
CSU 1160 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示
查看>>
LintCode 58: Compare Strings
查看>>