redis学习笔记-01:redis简介
1、redis是一个高性能的Nosql数据库,遵守BSD协议,使用c语言编写、支持网络、可基于内存亦可持久化,是一种日志型、Key-Value数据库,也可看做是一个分布式的、基于内存的缓存工具。
2、NoSQL数据库的产生是为了解决超大规模和高并发的纯动态网站带来的挑战,尤其是大数据应用难题。
3、NoSQL数据库的四大分类:
(1)键值(Key-Value)存储数据库:这一类数据库主要会使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。比如redis,Oracle BDB。
(2)列存储数据库:通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。比如HBase。
(3)文档型数据库:该类型的数据库是版本化的文档,以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版本,允许嵌套键值。而且文档型数据库比键值数据库的查询效率更高。比如MongoDB。
(4)图形数据库,比如Neo4J。
4、NoSQL数据库适用的场景:
(1)数据模型比较简单,没有太多的字段
(2)需要灵活性更强的IT系统,查询速度需要更快
(3)对数据库性能要求较高,比如键值对数据库直接由键得到值
(4)不需要高度的数据一致性
(5)对于给定的key,可以映射到复杂值的环境
5、redis与其他键值数据库相比,有三大特点:
(1)redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载重新使用。
(2)redis不仅仅支持简单的Key-Value类型的数据,而且还提供list、set、zset、hash等数据结构的存储。
(3)redis支持数据的备份、集群等高可用功能,即master-slave模式的数据备份。
6、redis的特点:
(1)性能极高:redis读的速度是110000次/秒,写的速度是81000次/秒
(2)丰富的数据类型:redis支持的数据类型有string、list、hash、set和order set数据类型的操作。
(3)原子性:redis的所有操作都是原子性的,要么成功执行要么失败完全不执行。单个操作是原子性的,多个操作也支持原子性,即事务。
(4)占用内存过高,这是缺点。
7、redis能干啥:
(1)内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
(2)取最新N个数据的操作:可以将最新的10条评论的ID放在redis的list集合里面。
(3)模拟类似于HttpSession这种需要设定过期时间的功能。
(4)发布、订阅消息系统。
(5)定时器和计数器。
8、以docker方式安装并启动redis服务
(1)拉取redis镜像到本地:
docker pull redis
(2)新建redis容器,以后台模式运行。如果简单点,那就写:docker run -p 6379:6379 -d redis redis-server --appendonly yes。
docker run -p 6379:6379
-v /dyy/myredis/data:/data
-v /dyy/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-d redis redis-server /usr/local/etc/redis/redis.conf
--appendonly yes
(3)docker上的redis已经以后台模式运行,接下来执行以下命令进行交互。
docker exec -it 容器ID redis-cli
redis学习笔记-01:redis简介的更多相关文章
- redis学习笔记之redis简介
redis简介 Redis是一个开源的,高性能的,基于键值对的缓存与存储系统,通过设置各种键值数据类型来适应不同场景下的缓存与存储需求.同事redis的诸多高层级功能使其可以胜任消息队列,任务队列等不 ...
- Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...
- Redis学习笔记(4) Redis事务、生存时间及排序
1. Redis事务 Redis中的事务(transaction)是一组命令的集合,一个事务中的命令要么都执行,要么都不执行.事务的原理是先将属于一个事务的命令发送给Redis,然后再让Redis依次 ...
- Redis学习笔记(1) Redis介绍及基础
1. Redis的特性 (1) 存储结构 Redis(Remote Dictionary Server,远程字典服务器)是以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis支 ...
- StackExchange.Redis学习笔记(一) Redis的使用初探
Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...
- redis学习笔记01 — 基本介绍、安装配置及常用命令
redis--NoSQL的一种 为了解决高并发.高可用.高扩展.大数据存储等一系列问题而产生的数据库解决方案,就是NoSQL NoSQL,非关系型数据库,全名:Not Only Sql,它不能代替关系 ...
- redis学习笔记-01 string类型命令
一.set key value set joker 123456 #设定key为joker,value为123456的数据 二.keys * keys * #用于查看该数据库中所有的key值 三.se ...
- redis学习笔记(三)——redis的命令大全总结
总结了一些redis五种存储类型的常用命令以及一些通用操作命令,不是很全,是在学习的时候将学到的做了个汇总,使用的时候可以查一下. 笔记写在表格里面了,不好粘贴.......后面的直接截图了..... ...
- Redis学习笔记(3) Redis基础类型及命令之二
1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...
随机推荐
- Python:函数基础
概念 一段代码,集中到一起,起一个名字,下一次可以使用这个名字调用这个代码块,就是函数的功能 作用: 方便代码的重用 分解任务,简化程序逻辑 使代码更加模块化 函数的分类 内建函数 第三方函数 自定义 ...
- 27 JavaScript的引入&注释&弹窗&变量常量&数据类型及转换&内存&垃圾回收
JS的引入: 1 内部引入 绑定元素事件如onclick="" 绑定锚点如href="JavaScript:void(0)" script标签引入,注意:如果标 ...
- 20 JavaScript随机&逻辑&比较&类型转换
JavaScript 随机 Math.random(): 返回0~1之间的随机数,包括0不包括1 Math.floor():下舍入.Math.floor(2.9) = 2.Math.floor(Mat ...
- 【原】简单shell练习(六)
1.shell获取进程号并杀掉该进程 kill - $(ps -ef | grep node| grep -v grep | awk '{print $2}') 解析: ps (processStat ...
- mac 重启php-fpm
查看php-fpm端口是否在被php-fpm使用 一般修改 php.ini 文件后经常需要重启php-fpm sudo killall php-fpm // 关闭 再输入 sudo lsof -i:9 ...
- Codeforces Round #617 (Div. 3)
A 题意:能否将数组里面的值用数组里面的值替换出一个和为奇数的数组 思路:1.和为奇数yes 2.和为偶数但有奇数yes 3.个数是奇数的,有奇数的yes 其他都是no 果然罚时全给了A #inclu ...
- 「AT2381 [AGC015C] Nuske vs Phantom Thnook」
题目大意 给出一个01矩阵,这个矩阵有一个特殊的性质: 对于任意两个 \(1\) 之间最多只有 \(1\) 条由 \(1\) 构成的路径.每次询问给出一个矩形范围,查询在这个范围内的联通快个数. 分析 ...
- svnserve: Can’t bind server socket: Address already in use报错解决办法
最近在学习自己搭建SVN服务,意外的报错 svnserve: Can’t bind server socket: Address already in use 于是google了下,原来是 已经启动了 ...
- Centos610无桌面安装Docker-安装
1.必备环境 设定docker源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep ...
- C/C++ scanf和gets 区别 , printf和puts区别
ref 1. scanf和gets区别 | 博客园 2. printf和puts区别 | CSDN scanf和gets都能从输入流stdin读取字符串,那么它们有什么区别呢? scanf 留回车:开 ...