1、非关系型数据库?
NoSql: [Not Only Sql不仅仅是sql]. 它是对所有非关系型数据库的一种统称。非关系数据库它们之间不存在任何的关联关系。 它的数据结构: key-value模式--而且数据也可以持久化到磁盘上。
常见的非关系数据库的种类:
redis: 典型的非关系数据库
mogodb: 它是介于关系型和非关系之间。
hbase: 数据库【海量数据】
2. 什么是redis
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。
redis它是一个开源的数据库,缓存的服务器,它里面可以存放字符串,hash,列表,集合数据类型的数据,它的计算基于内存进行计算的。而且数据也可以持久化到磁盘中。 而且它也提高了哨兵模式以及集群模式来提高redis的可用性。
3.redis特点 【为什么使用】
1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
---影响redis性能的因素:内存而不是多线程
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化--磁盘--防止数据丢失
5.官方不支持window系统,但是又第三方版本。 linux系统。
4. 如何安装redis
redis是使用c语言编写的一款软件
1.安装redis需要的环境。
yum install -y gcc-c++
2.下载redis
也可以使用其他版本的redis
3.上传到虚拟机中
4.解压redis压缩文件
tar -zxvf xxx.tar.gz
5.进入解压目录 并进行编译和安装
make
make install
6.启动和关闭redis服务
在安装目录下输入
redis-server redis.conf ----启动redis
========================================================
redis-cli shutdown ---在任何目录下,输入下列命令关闭Redis服务。
ps -ef | grep redis ---查看Redis进程状态
kill -9 Redis_PID ----通过PID杀死Redis进程
7.客户连接redis服务
redis-cli -h ip -p port
-h:表示连接redis服务所在的ip
-p:表示连接redis服务的端口号redis-cli: 表示连接本地的redis服务
5. 简单对redis配置文件了解
259 daemonize no: 设置redis服务启动时是否为守护进程
98 port 6379 修改redis的服务的端口号
75 bind * -::* 设置允许哪些ip连接redis服务器密码设置,将”#requirepass foobared“ 取掉注释改成 requirepass 123456(或者其它你需要的密码)(在480行左右)
6.redis也提供了客户端界面
注意: 必须redis服务端设置了允许任意ip连接!!!!!!
7.redis中常用的命令
redis命令手册https://www.redis.net.cn/order/Redis 命令参考 — Redis 命令参考http://redisdoc.com/ (1)关于对key操作的命令
keys *: 查看redis中所有的key
exists key: 判断指定的key是否存在。存在返回1 否则返回0
del key: 删除指定的key
expire key seconds: 为指定的key设置过期时间。
(2)关于库的命令:
默认redis中存在16个库。
select n: 选中库 n=0~15
flushdb: 清空当前数据库
flushall: 清空所有库的数据
(3) redis支持数据类型中常用命令
redis中存放的数据类型非常多,而我们使用最多的: 字符串类型,Hash类型,List队列类型, Set集合类型, SortSet有序集合类型。
1>支持字符串类型
redis存储数据的格式: key--value格式。 这里的key都是string类型,而我们说的redis支持的类型。指的是value的数据类型。存放的大小512M.
set key value: 存储字符串类型的value.
get key: 根据key获取对应的value字符串值。
mset key value key value ...: 存储多个字符串类型的value
mget key key key...:获取多个key对应的value字符串值
setnx key value: 如果存在指定key,则不存入,如果不存在则存入。
incr key: 对指定的key的value值进行递增。key对应的value必须为整型字符串
decr key: 对指定的key的value值进行递减。
incrby key number: 按照number值进行递增