Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念。

Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),可以通过配置databases来修改这一数字。

Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。

Redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘I/O速度为严重影响redis的性能。

数据结构

String : key最大是512K,键最大是512M。建议每个key不要超过M级别

Hash

List

Set

ZSet

HyperLogLog:基数计算(cardinality counting)指的是统计一批数据中的不重复元素的个数

Geo

Pub/Sub

Redis Module:BloomFilter,CuckooFilter,RedisSearch

Redis大Key

存储本身的key值空间太大,或者hash,list,set等存储中value值过多。

如何保证redis中的数据都是热点数据:redis内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

Redisson是一个高级的分布式协调Redis客服端。

Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持。

Redis并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。

Redis集群之间是异步复制。

Redis集群最大节点个数是16384。

Redis集群目前无法做数据库选择,默认在0数据库。

ping测试Redis的连通性。

redis中的管道:一次请求/响应服务器能实现处理新的请求即使旧的请求还未被响应。这样就可以将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。

Redis事务相关的命令:MULTI、EXEC、DISCARD、WATCH

过期时间:EXPIRE

永久有效:PERSIST

内存优化:尽可能使用散列表(hashes),散列表(是说散列表里面存储的数少)使用的内存非常小,所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的web系统中有一个用户对象,不要为这个用户的名称,姓氏,邮箱,密码设置单独的key,而是应该把这个用户的所有信息存储到一张散列表里面。

Redis回收使用的是LRU算法

Redis2.6开始redis-cli支持一种新的被称之为pipe mode的新模式用于执行大量数据插入工作。

Redis Cluster实现了一种混合形式的查询路由,但并不是直接将请求从一个redis节点转发到另一个redis节点,而是在客户端的帮助下直接redirected到正确的redis节点。

Redis是单线程的,可以在同一个服务器部署多个Redis的实例,并把他们当作不同的服务器来使用。

Redis的存储极限是系统中的可用内存值

Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件

如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次

为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内

尽量避免在压力很大的主库上增加从库

主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3...

redis基础-Remote Dictionary Server的更多相关文章

  1. Redis(REmote DIctionary Server)基础

    Redis(REmote DIctionary Server)基础 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Redis是一个开放源代码(BSD许可)的内存数据结构存储,用作数 ...

  2. redis(Remote Dictionary Server)

    redis的简介和使用   简介 redis(Remote Dictionary Server)是一种Nosql技术,它是一个开源的高级kv存储和数据结构存储系统,它经常被拿来和Memcached相比 ...

  3. Redis(Remote Dictionary Server)入门

    说说特性 存储结构:键值对支持多种数据类型,包括字符串类型,散列类型,列表类型,集合类型,有序集合类型. 内存存储与持久化:支持将内存中的数据异步写入磁盘中. 丰富的功能:支持为每个键值对设置生存时间 ...

  4. Redis教程(REmote DIctionary Server)——一个高性能的key-value数据库

    redis(REmote DIctionary Server)是什么? Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...

  5. Redis : REmote DIctionary Server

    REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守B ...

  6. [CDH] Redis: Remote Dictionary Server

    基本概念 一.安装 Redis: Remote Dictionary Server 远程字典服务 使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种 ...

  7. 二:Redis:(REmote DIctionary Server)远程字典服务器

    Redis是完全开源免费的,用C语言编写的,遵循BSD协议,是一个高性能的(key-value)分布式内存数据库,基于内存运行,并支持持久化的NOSQL数据库,是当前最热门的NOSQL数据库之一,也被 ...

  8. redis基础学习(不定期更新)

    redis简介 redis是Remote Dictionary Server(远程数据服务)的缩写 数据模型是key-value,是用C编写的 数据类型有string list hash set so ...

  9. redis——基础介绍

    转自:http://www.cnblogs.com/xing901022/p/4863929.html 1 什么是Redis Redis(REmote DIctionary Server,远程数据字典 ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:QStandardItemModel指定行和列创建模型后的数据项初始化的两种方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QStandardItemModel通过构造方法 QStandardItemModel(int ro ...

  2. PyQt学习随笔:Qt中Model/View中的Model Index

    Qt中Model/View中的Model Index是一个类,该类用于定位Model/View中数据模型中的数据. Model Index是从QAbstractItemModel派生的子类,用于在项视 ...

  3. 你必须知道的MySQL知识点

    什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构(掌握) 数据结构可视化 前置知识:树的高度越低查询效率越高 二叉树:不能自平衡,极端情况出现倾斜,查询效率和链表类似 红黑 ...

  4. react路由初探(1)

    import React from 'react'; import logo from './logo.svg'; import './App.css'; class About extends Re ...

  5. Codeforces Round #631 (Div. 1) A-C

    在 \(\text{Div. 2/3}\) 混了一个多月后,四个号终于都上紫了,也没用理由不打 \(\text{Div. 1}\) 了.这是我人生中的第一场 \(\text{Div .1}\) ,之前 ...

  6. 【APIO2019】路灯(ODT & (树套树 | CDQ分治))

    Description 一条 \(n\) 条边,\(n+1\) 个点的链,边有黑有白.若结点 \(a\) 可以到达 \(b\),需要满足 \(a\to b\) 的路径上的边不能有黑的.现给出 \(0\ ...

  7. 编译opencv4.5.0

    1. 环境vs2017或其它版本cmake-3.18设置环境变量OPENCV_TEST_DATA_PATH 值设置为 D:\sdk\vs2017\opencv-4.5.0\opencv_extra-4 ...

  8. Eclipse设置自动提示

    Eclipse设置自动提示可通过以下方式实现, 1.运行Eclipse开发工具,在开发工具最顶端菜单栏,点击"windows"->"preferences" ...

  9. LLVM程序分析日记之CMake使用

    我们编写LLVM Pass或者将LLVM嵌入自己的项目时,需要用到CMake来组织自己的项目目录. Documents [1] http://llvm.org/docs/CMake.html#embe ...

  10. 06-flask-文件上传案例

    前端代码 Demo.html <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...