Redis是Nosql数据库,Nosql数据库是什么?Not only sql(不仅仅是sql),它可以存储很多东西,这里我直接引用比较严谨的解释了
随手记:
大数据时代的3V指:海量Volume,多样Variety,实时Velocity。
互联网需求的3高:高并发,高可扩,高性能。
Redis中文网站
Redis官网
什么是Nosql,Nosql的演变
Redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
读的速度是110000/1s,写的速度是81000/1s
Redis可以做什么
这个就不讲解了,看传送门
这个我没装过,自己搞起来,下面看教程
装了两次,一次是在虚拟机上,一次是在阿里云的服务器上,这次介绍一下阿里云服务器上安装的过程,其实就是多了个打开防火墙端口的过程
(1)下载linux Redis
Redis官网中有最新版的安装包,我这边是6.0.9版本
(2)上传至服务器
通过xftp上传至服务器,当然也可以直接在服务器中下载
(3)解压
tar zxvf redis-6.0.9.tar.gz
我这边修改了一下解压后的文件名,修改成了6.0.9
mv redis-6.0.9 6.0.9
(4)配置环境
首先我感觉需要java环境,这个不讲了,可以看一下这个博客
因为redis是C++写的,所以还是很有必要安装一下C++的环境的,这个看下图
yum install gcc-c++
在make一下加载一下配置,最后make install将redis加载到
/usr/local/bin中,这样就可以在任何地方直接使用redis客户端了
make
make intall
当使用make 命令时,提示-bash: make: command not found,这个就需要安装一下make命令了
yum -y install gcc automake autoconf libtool make
这个命令执行需要几分钟,耐心等待一下
(5)修改redis.conf配置文件
这里需要修改一下配置文件redis.conf,主要是修改开放其他ip访问本地redis以及将redis设置为后台启动
将bind 127.0.0.1 修改为 bind *
将protected-mode yes 修改为protected-mode no
将daemonize no 修改为 daemonize yes
这些参数所对应的含义如下
这样就基本完成了,可以启动一下
启动命令
redis-server ./redis.conf
这个是以配置文件redis.conf的参数来启动的
可以用客户端去连接一下,如下,就是启动成功了
当然,如果想在本地电脑直接连接阿里云服务器中的redis的话,那么还需要开放对应的防火墙
这样就打开了6379的端口,我们就可以在本地通过客户端管理工具去连接了,如下
这个Redis管理工具就是RedisDesktopManager,有需要的可以去下载
以上内容部分参考长沙大鹏
随手记
mysql三大范式
第一范式:数据表每一列都要保证他的原子性,也就是说列不可以被分割
第二范式:属性必须完成依赖于主键
第三范式:所有非主属性不依赖与其他非主属性
参考自:https://www.cnblogs.com/gongcheng-/p/10901824.html
闲聊一句,等我把redis、rabbitmq这些基础使用搞定了,一定要研究各个组件的原理,真是任重而道远啊
mysql主从分离
先看一下benchmark,redis自带的性能测试,这个一图就可以看到所有的参数配置了
这里边如果不设置参数的话,默认的配置也可以测试的,测试的时候因为会循环测试多个命令,所以需要多等待一段时间
我的测试命令是
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000
这个简单的解释了测试的参数,我参考了其他博客,大概是这个意思
切换数据库命令
slect n
查看所在数据库大小
dbsize
清空当前数据库
flushdb
清空所有数据库
flushall
查看当前数据库所有的key
keys *
直接以代码方式介绍一下下面命令吧
127.0.0.1:6379> dbsize # 当前数据库大小
(integer) 0
127.0.0.1:6379> set age 12 # 赋值
OK
127.0.0.1:6379> get age
"12"
127.0.0.1:6379> set name cainiao
OK
127.0.0.1:6379> keys * # 查看当前数据库所有key
1) "age"
2) "name"
127.0.0.1:6379> exists name # 查看name是否存在
(integer) 1
127.0.0.1:6379> move name 1 # 移除name, 1代表当前数据库
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> set name cainiao
OK
127.0.0.1:6379> exists name age
(integer) 2
127.0.0.1:6379> expire name 10 # 设置name的过期时间,单位秒
(integer) 1
127.0.0.1:6379> ttl name # 查看当前name剩余过期时间
(integer) 1
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name cainiao
OK
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> type name # 查看当前name的类型
string
127.0.0.1:6379> type age
string
看下图
这里有几点需要着重记录的
下节将讲解Redis的五个常用类型的基础知识,望讨论指点