1.nosql介绍
NoSQL:一类新出现的数据库(not only sql), 泛指非关系型的数据库
特点:
1.不支持SQL语法
2.nosql中存储的数据都是KV形式。 python 中的字典
3.NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
NoSQL种类:
1.Mongodb
2.Redis
3.Hbase hadoop
4.Cassandra hadoop
NoSQL和SQL数据库对比:
1.适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景
2.sql对事务的支持非常完善,而nosql基本不支持事务
2.redis简介
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。一般用作缓存、队列等使用场景。
特性:
1.Redis支持数据的持久化
2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储.
3.Redis支持数据的备份,即master-slave模式的数据备份。
4.性能极高 -- Redis能读的速度是110000次/s,写的速度是81000次/s
5.原子性 -- Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。
6.支持 publish/subscribe, 通知, key 过期等等特性。
应用场景:
1.用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
2.可以在某些特定应用场景下替代传统数据库——比如社交类的应用
3.在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
redis官网: https://redis.io/
redis中文官网: http://redis.cn/
3.redis安装
下载:
wget http://download.redis.io/releases/redis-4.0.9.tar.gz
解压:
tar -vxzf redis-4.0.9.tar.gz
移动,放到/usr/local⽬录下, 并改成redis
sudo mv ./redis-4.0.9 /usr/local/redis/
进⼊redis⽬录
cd /usr/local/redis/
编译, 生成命令:
sudo make
测试,这段运⾏时间会较⻓(建议线上安装的时候做一个完整的测试)
sudo make test
安装,将redis的命令安装到/usr/local/bin/⽬录
sudo make install
命令介绍:
redis-server redis服务器 mysql-server
redis-cli redis命令行客户端 mysql
redis-benchmark redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-rdb RDB文件检索工具
配置⽂件路径:
/usr/local/redis/redis.conf
一般会把redis.conf放在/etc/redis目录中
4.redis配置
打开配置文件(/etc/这个文件夹普通用户是没有权限修改的,所以需要加上sudo):
sudo vi /etc/redis/redis.conf
核心配置项:
绑定ip:如果需要远程访问,可将此⾏注释,或绑定⼀个真实ip
bind 127.0.0.1
端⼝,默认为6379
port 6379
是否以守护进程运⾏
如果以守护进程运⾏,则不会在命令⾏阻塞,类似于服务
如果以⾮守护进程运⾏,则当前终端被阻塞
设置为yes表示守护进程,设置为no表示⾮守护进程
推荐设置为yes
daemonize yes
数据⽂件名
dbfilename dump.rdb
数据⽂件存储路径
dir /var/lib/redis
⽇志⽂件
logfile "/var/log/redis/redis-server.log"
数据库,默认有16个 0-15
database 16
主从复制,类似于双机备份。
slaveof
5.服务端和客户端的命令
服务器端的命令
redis-server
help查看帮助⽂档:
redis-server --help
查看redis服务器进程
ps aux | grep redis
ps ef | grep redis
杀死redis服务器
sudo kill -2 pid
启动,并指定配置文件
sudo redis-server /etc/redis/redis.conf
客户端的命令
redis-cli
help查看帮助⽂档
redis-cli --help
连接redis
redis-cli -p 端口号(不填,默认6379)
切换数据库, 数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select 10
6.redis数据结构
redis是key-value的数据结构,每条数据都是⼀个键值对
键的类型是字符串
注意:键不能重复
值的类型分为五种:
1.字符串string
2.哈希hash
3.列表list
4.集合set
5.有序集合zset
数据操作行为
保存
修改
获取
删除
数据类型指的是值的数据类型,键都是字符串。
7.red