数据库:Redis数据库
目录
一、数据库类型
1、关系型数据库
2、非关系型数据库
3、关系型非关系型区别
二、Redis数据库
1、什么是Redis
3、Redis特点
4、Redis为什么读写快
5、部署Redis数据库
6、redis管理
7、Redis数据库五大类型
8、Redis数据库基础使用
9、redis五大类型增删查
一、数据库类型
1、关系型数据库
关系型数据库:是一个机构号的数据库,创建在关系模型基础上,是一个二维表,表中字段记录有关联,先建库再建表
2、非关系型数据库
非关系型数据库:NoSQL(NoSQL = Not Only SQL ),意思是“不仅仅是 SQL”,是非关系型数据库的总称。除主流关系型数据库都是非关系型数据库,Redis、Hbase、大部分用在缓存中
3、关系型非关系型区别
非关系数据库:数据保存在缓存中,利于读取速度/查询数据、架构中位置灵活、分布式、扩展性高
关系数据库:安全性高(持久化)、事务处理能力强、任务控制能力强、做日志备份、恢复、容灾的能力更强一点。
二、Redis数据库
1、什么是Redis
Redis(远程字典服务器) 是一个开源的、使用 C 语言编写的 NoSQL 数据库即非关系数据库。
Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程。若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程。
Redis 6.0 中新增加的多线程也只是针对处理网络请求过程采用了多线性,而数据的读写命令,仍然是单线程处理的。
2、Redis命中机制和淘汰机制
命中机制:查询数据可以查询到,例如查询100条可以查询到20条即命中20条
淘汰机制:Redis缓存的是高热数据,若负载高于限制则淘汰一些最近没有访问的数据,即删除
3、Redis特点
①读写速度快,读最高可达110000次/s 写最高81000次/s。
②支持丰富的数据类型,key-value 、 strings、 lists等。
③持久化,可以将内存中的数据保存在磁盘中,重启时再次加载进内存进行使用,定期快照,日志记录方式保存(类似增量备份)。
④原子性:redis 所有操作都是原子性的。
⑤支持数据备份:即 master-salve 模式的数据备份。
4、Redis为什么读写快
①、redis是一款纯内存结构工作在内存中,避免了磁盘I/O等操作耗时操作
②、redis命令处理的核心模块是单线程,减少了锁竞争,以及频繁创建线程和销毁线程的代价,减少了线程上下文切换的消耗
③、采用I/O多路复用技术,大大提高并发效率
5、部署Redis数据库
yum install -y gcc gcc-c++ make
#安装工具
cd /opt
#进入opt目录将软件包上传
tar zxvf redis-5.0.7.tar
#解压安装包
cd /opt/redis-5.0.7
#进入解压的文件夹中
make
#将源代码转换成二进制make install prefix=/usr/local/redis
#安装进硬盘,永久保存在硬盘上 指定安装目录到/usr/local/redis
cd /opt/redis-5.0.7/utils
#进入到安装目录执行安装脚步
./install_server.sh
#执行安装脚步
Please select the redis port for this instance: [6379]
#第一个是询问设置redis端口不设置直接回车则默认是6379
Please select the redis config file name [/etc/redis/6379.conf]
#第二个询问设置redis主配置文件路径,不设置直接回车则是/etc/redis/6379.conf此文件
Please select the redis log file name [/var/log/redis_6379.log]
#第三个询问设置redis日志文件位置,不设置直接回车是/var/log/redis_6379.log文件
Please select the data directory for this instance [/var/lib/redis/6379]
#第四个询问设置管理redis的RDB文件保存路径不设置直接回车是/var/log/redis_6379.log文件
Please select the redis executable path [/usr/local/bin/redis-server]
#第五个设置redis执行文件路径redis-cli等若设置则直接填写,比如设置为/usr/local/redis/bin/redis-server。
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
#询问是否配置完成确认安装,回车表示配置完成确认安装,Ctrl-C终止安装
netstat -antp |grep redis
#安装完成后redis是自动启动的。查询是否有redis进程有则安装成功
ln -s /usr/local/redis/bin/* /usr/local/bin/
#把redis的可执行程序文件放入路径环境变量的目录中便于系统识别即可以在任何位置使用此文件内命令
6、redis管理
①redis-server:用于启动redis的工具
②redis-check-rdb:修复rdb持久化文件
③redis-check-aof:修复aof持久化文件
④redis-benchmark:用于检测redis在本机的运行效率
redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。
基本的测试语法:redis-benchmark [选项] [选项值]。
-h :指定服务器主机名。
-p :指定服务器端口。
-s :指定服务器 socket
-c :指定并发连接数。
-n :指定请求数。
-d :以字节的形式指定 SET/GET 值的数据大小。
-k :1=keep alive 0=reconnect 。
-r :SET/GET/INCR 使用随机 key, SADD 使用随机值。
-P :通过管道传输<numreq>请求。
-q :强制退出 redis。仅显示 query/sec 值。
--csv :以 CSV 格式输出。
-l :生成循环,永久执行测试。
-t :仅运行以逗号分隔的测试命令列表。
-I :Idle 模式。仅打开 N 个 idle 连接并等待。#向 IP 地址为 192.168.10.23、端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能
redis-benchmark -h 192.168.10.23 -p 6379 -c 100 -n 100000#测试存取大小为 100 字节的数据包的性能
redis-benchmark -h 192.168.10.161 -p 6379 -q -d 100#测试本机上 Redis 服务在进行 set 与 lpush 操作时的性能
redis-benchmark -t set,lpush -n 100000 -q
7、Redis数据库五大类型
String:String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。默认是此数据类型
List:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
Hash(散列类型):hash用于存储对象。可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。
set:无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
sorted set:a、有序集合,元素类型为Sting,元素具有唯一性, 不能重复。b、每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。
8、Redis数据库基础使用
redis-cli
#方法1登录redis数据库
redis-cli -h 主机 -p 6379
#方法2登录redis数据库
#进入redis数据库后默认进入的是 0库,默认redis有16个库,序号是0-15。
select 库序号[0-15]
#切换redis库范围是0-15
move 键名 库序号[0-15]
#将数据迁移到其他库,例如 move ky26 2;将ky26键移动到2库中
set 键名 键内容
#设置键内容
get 键名
#查看键内容
keys
#命令查看库中内容,通常结合*和?等选项使用
keys *
#显示本库中所有键
dbsize
#统计本库中所有键的和输出
keys a*
#显示本库中所有以a开头的键
keys a?
#显示本库中以a开头后面只有1个任意字符的键
exists 键名
#判断键在本库中是否存在,存在则返回1不存在则返回0
del 键名
#删除本库中的此键
rename 原键名 新键名
#修改原键名为新间名,若新建名中有内容则直接覆盖不提示
renamenx 原键名 新键名
#修改原键名为新键名若新键名存在则此命令执行不成功返回0,不存在更改成功
type 键名
#查看此键是什么类型
flushdb
#删除此库中的所有内容
flushall
#删除redis中所有库的内容
9、redis五大类型增删查
reids数据类型 | 增 | 查 | 删除 |
string | set | get | del |
list | lpush | lrange | del |
hash | hset | hget | del |
set | sadd | smembers | del |
sorted set | zadd | zrank | del |
String:
set test 123
#设置string类型的test键值为123
get test
#查看string类型的test键的值
del test
#删除string类型的test键
List:
lpush test 0 1 2 3
#创建list类型的test键值为0 1 2 3 0为第一个元素 1为第二个元素以此类推
lrange test 1 1
#查看test键的第一个元素的值
lrange test 1 2
#查看test键的第一个元素到第二个元素的值
del test
#删除list类型的test键
Set:
无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
数据库:Redis数据库相关推荐
- 05_NoSQL数据库之Redis数据库:Redis的常用命令,键值相关命令和服务器相关命令
Redis常用命令 Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以再Linux终端使用. 键值相关命令: Keys:返回满足给定pattern的所有key 用表达式*表 ...
- Redis数据库基本操作
一.Redis数据库和MySQL数据库的不同 MySQL数据库需要自己去创建数据库,Redis数据库不用自己创建数据库,默认情况下有0-15号数据库 Redis数据库没有表,数据是以key-value ...
- golang 字符串排序_Golang操作数据库Redis
在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用. Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问 ...
- redis mysql查询数据类型_linux 常见的标识与Redis数据库详解
xxx@xxx:~$ : 第一个 xxx 只的是 用户名 第二个 xxx 代表的是 HOST主机 ~ : 当前用户的根, 根的位置在 /home/用户名 $ : 代表当前用户是一个普通用户 # : 代 ...
- Redis数据库设置密码
Redis数据库的默认打开方式为无密码打开,现在要将其设置为以密码形式打开. Redis文件夹内容 1.修改配置文件 在redis.windows.conf文件中设置密码的命令中添加requirepa ...
- 彻底取代Redis+数据库架构,京东618稳了!
作者介绍 京东零售在线存储部,致力于分布式系统.开源数据库技术的研究,主要负责数据库性能调优.监控和架构设计. 过去十年,随着移动互联网指数级的增长,企业和用户对应用程序的响应性能要求越来越高, 如何 ...
- Ubuntu16.04下安装Redis数据库
技术交流QQ群:1027579432,欢迎你的加入! 1.安装redis数据库 安装命令:sudo apt-get install redis-server 2.检查redis服务器系统进程 cdl@ ...
- redis数据库和python的交互
转载地址:https://blog.csdn.net/skyannesky/article/details/78068049 一.引入redis模块 import redis 二.在python中获取 ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用r ...
最新文章
- 测试嵌套JavaScript对象键的存在
- 重建DC的DNS区域
- 赶紧下载SublimeText并快速设置代码自动补全,效率大大提高
- linux 安装redis_Linux安装redis及安装php-redis扩展
- ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第三篇
- 单晶组件的平价上网路线
- 《几何与代数导引》习题1.18——Ceva 定理
- Oracle start with.connect by prior子句实现递归查询
- linux用dd命令刻录u盘,巧用linux dd命令刻录启动U盘
- ppt转图片(支持动画帧的转换)
- 初识vbs脚本(简单的逗女孩的记事本炸弹及解除)
- uniapp如何使用uview中的loadmore上拉加载
- 已知直线上两点求直线的一般式方程
- edcoder数据结构第1关:基于BF算法的病毒感染监测
- 找个免费的天气预报API真难a
- 外贸英语900句之 保险 Insurance
- Linux 运行jar包的几种方式
- iwebShop--基本操作
- 应急通信指挥调度系统|智慧消防指挥中心
- 工程师、程序员、码农有什么区别?
热门文章
- 同花顺数据获取思路及算法
- PTA基础编程题目集1-6题答案
- 虚拟机与宿主机之间的网络共享问题
- 手机中的照片不见了如何恢复
- C++-STL(1)-Vector-随机数(randon、default_random_engine)
- 2001年图灵奖--奥尔-约翰·戴尔和克里斯登·奈加特简介
- IE8跳转谷歌浏览器亲测有效
- java排他_排他文件锁实现(Java版本)
- 山经·南山经:猨翼山 [yuán yì shān]
- html中背景条纹效果,CSS制作Web页面条纹背景样式的技巧分享