Redis的特点

Redis为什么比MySQL快?底层原理

  1. Redis存储的是k-v格式的数据。时间复杂度是O(1),常数阶,而mysql存储数据依靠数据引擎:innodb,Myisam,两种引擎的底层实现都是使用B+TREE存放或者查找,时间复杂度是O(logn)是对数阶的。Redis会比Mysql快一点点。
  2. Mysql数据存储一般是存储在表中,设计到跨表格查找的时候较慢,通过内连接外连接,查找数据时要先对表进行全局扫描或根据索引查找,这涉及到磁盘的查找,磁盘查找如果是单点查找可能会快点,但是顺序查找就比较慢。而redis不用这么麻烦,本身就是存储在内存中,只要知道key就可以直接拿到对应的值,会根据数据在内存的位置直接取出。
  3. Redis是单线程的多路复用IO,单线程避免了多线程创建时间开销和线程切换的开销,多路IO复用可以共享数据,而多路复用IO避免了IO等待的开销,在多核处理器下提高处理器的使用效率可以对数据进行分区,然后每个处理器处理不同的数据。

Redis有哪些特点?如何向Redis中存储数据?如何设置长连接?

Redis特点:
1、 速度快。Redis是用C语言实现的,所有数据存储在内存中以键值对形式保存。
2、持久化
Redis的所有数据存储在内存中,对数据的更新将异步地保存到磁盘上。
3、支持多种数据结构
Redis支持五种数据结构:String、List、Set、Hash、Zset
4、支持多种编程语言。Java、php、Python、Ruby、Lua、Node.js
5、功能丰富。除了支持五种数据结构之外,还支持事务、流水线、发布/订阅、消息队列等功能。
6、源码简单,约23000行C语言源代码。
7、主从复制
主服务器上只进行写的操作,在从的服务器上进行读的操作
主服务器(master)执行添加、修改、删除,从服务器执行查询。
8、(服务架构)支持高可用和分布式
高可用:使用redis自带的哨兵机制来实现高可用

如何存储数据,使用python操作数据库
import redis
conn = redis.StricRedis(‘127.0.0.1’,6379) #连接ip和端口
conn.lset(‘key’,‘name’) #通过连接写数据,设置键值对
conn.lrange(‘key’,0,-1) #取出 并设置范围

Redis的特点_第1张图片

长连接概念:
所谓长连接,指在一个TCP连接上可以连续发送多个数据包,数据发送完成后并不会断开连接,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接。
短链接概念:
短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,即每次TCP连接只完成一对 CMPP消息的发送。如果有数据要发送,则重新建立连接。

设置长连接:
修改redis.conf的tcp-keepalive=1, 默认为0,表示禁止长连接。

你可能感兴趣的:(redis,数据库)