1.NOSQL 概述
1.什么是nosql?
no only sql 非关系型数据库
2.为什么 需要nosql、
High performance 高并发读写
huge storage 海量数据的高效率个存储和访问
high scalability && high availability 高可扩展性和高可用性
3.redis mongoDb
4.Nosql 数据库的四大分类
键值(key-value)存储
列存储
文档数据库
图形数据库
5.特点
易扩展
灵活的数据模型
大数据量,高性能
高可用
2.redis 概述
1.redis的由来
作为一个开发人员来说,如果你对某一个应用软件敢于不爽,,一般你会怎么做呢。。。。。那么一般你就忍了。。不能忍,就有了redis
2.高性能键值对数据库,支持的键值数据类型(读:11w/s 写:8.8w/s)
字符串类型
列表类型
有序集合类型
散列类型
集合类型
3.redis的应用场景
缓存
任务队列
网站访问统计
数据过期处理
应用排行榜
分布式集群架构中中session分离
3.redis安装 jedis入门
环境:
虚拟机:VMware
Linux:centos-6.5
客户端:Xshell
lnmp环境
4.redis 数据结构
1.jedis介绍
jedis是redis官方首选的java客户端开发包
https:://github.com/xetorthio/jedis
1.五种数据类型:
字符串 string
哈希 hash
string key 和 string value的map容器
字符串列表 list
ArrayList使用数组方式
LinkedList使用双向链接方式
双向链表中增加数据
双向链表中删除数据
字符串集合 set
和list类型不同的是,set集合中不允许出现重复的元素
set可包含的最大元素数量是4294967295
跟踪一些唯一性数据
用于维护数据对象之间的关联关系
有序字符串集合 sorted set
sorted-set和set的区别
sorted-set中的成员在集合中的位置是有序的
如大型在线游戏积分排行榜
构建索引数据
2.key定义的注意点:
不要过长
不要过短
统一的命名规范
3.存储string max 512m 常用的命令
赋值 set getset
取值 get
删除 del
数值增减 incr decr
命令扩展
4.存储Hash 常用命令:
赋值 hset hmset
取值 hget hmget hgetall
删除 hdel
增加数字 hincrby
自学命令 hexists hlen hkeys hvals
5.存储list 常用命令:
两端添加 lpush rpush
查看列表 lrange
两端弹出 lpop rpop
获取列表元素个数 llen
扩展命令 lpushx rpushx lrem lset linsert rpoplpush
6.存储set 常用命令:
添加/删除元素 sadd
获得集合中的元素 smembers sismember
集合中的差集运算 sdiff
集合中的交集运算 sinter
集合中的并集运算 sunion
扩展命令 scard srandmember sdiffstore sinterstore sunionstore
7.存储sorted-set 常用命令
添加元素 zadd
获得元素 zscore zcard
删除元素 zrem
范围查询 zrange
扩展命令 zrevrange zremrangebyrank zremrangebyscore zrangebyscore zincrby zscore zcount
5.keys的通用操作
keys my?
del key
exists key
rename key
expire key 1000
ttl key
type key
6.redis的特性
最多支持16个数据库
select 0 选择数据库
redis事务:
multi 开启事务
exec 提交事务
discard 事务回滚
7.redis持久化
数据同步到硬盘上;
持久化使用的方式:
rdb持久化
aof持久代
无持久化
同时使用RDB和AOF
RDB方式:
优点:
可将数据库保存为一个文件,便于备份;
可方便移植;
性能最大化,可开启小的进程处理持久化操作;
缺点:
不能保证数据完整性;
当数据过大,进程处理将会延迟几百到一千毫秒;
配置过程:
编辑redis.conf文件:vim redis.conf
save 900 1 每900秒至少有一个修改,记录一次快照,同步到磁盘上
save 300 10 每300秒至少有10个修改,记录一次快照,同步到磁盘上
save 60 10000 每60秒至少有10000个修改,记录一次快照,同步到磁盘上
找到时间戳,可配置秒、分、时与之存储量
rdb文件默认保存在redis安装目录
2.AOF方式:
优点:
同步写入频率高;
不破坏写入日志数据;
当数据过大,可启动修改重写机制,保证修改数据的更新;
缺点:
效率低于RDB;
文件偏大于RDB文件;
配置过程:
编辑redis.conf文件:vim redis.conf
找到appendonly no 修改为yes
修改策略:
配置文件:
appendfsync always 每修改一次都记录,同步到磁盘中;
appendfsync everysec 每秒中同步一次;
appendfsync no 不同步到磁盘中