一、概述
1、关系式数据库
a) 以表(行和列)存储数据
b)建立在关系模型上的数据库
2、nosql: not onle mysql【nosql数据库的类型】
3、Web2.0对数据库的要求
a、能够支持数据库高并发读写的需求
a) 关系式数据库、支持上万次的读取操作
b) Nosql支持过百万的pv
b、海量数据的高效率的存储和访问的需求
C、数据库的高扩展性
D、字段不固定的应用
二、数据库类型
SequoiaDB:巨杉数据库【IBM生产的分布式大型数据库,国外用的比较多,应用在金融、银行】
HBASE:分布式数据库、
Cassamdra: 分布式数据库、主要用户fackook
Memcache: 速度快、不可备份
优点;可以利用多核优势,单实力吞吐量极高,支持十几万QPS(QPS:对一个特定的服务器在规定时间内处理流量多少的标准)
Bug较少
缺点:不能持久存储,无法进行数据同步,支持简单数据结构
Mangodb:
优点:文档型的数据库,查询功能强大,支持索引,最接近关系式数据库的nosql
缺点:结构单一、不支持事务功能
Redis
优点:支持多种数据结构
支持数据化存储,支持数据同步,支持事务功能
缺点:
三、redis安装
最新版:3.0.5版
实验版本:3.0.3版
www.redis.cn 中国资料官网
http://redis.io 官方站
安装resdis
#yum -y install gcc*
将下载好的redis安装包拷贝到系统里两种方法:
1、挂载镜像光盘
2、利用wscp传出到 /usr/src 目录中
#cp /mnt/cdrom/* /usr/src/
#tar -zxf redis-3.0.3.tar.gz
#make
%解压redis
%直接make安装
%安装结束后系统提示建议操作“make test”检测编译安装环境
#make test
%报错了;;;提示tcl要8.5以上的版本才可以;
%安装tcl-8.5.7-6.el6.x86_64.rpm
#cd /usr/src
#yum -y install tcl-8.5.7-6.el6.x86_64.rpm
%tcl-8.5.7-6.el6.x86_64.rpm 这个软件是第三方软件,系统盘中没有,需要下载;
#cd /usr/src/redis-3.0.3
#make test
# make PREFIX=/usr/local/redis install
%定安装位置,如果没有指定安装位置PREFIX=/usr/local/redis,则make install会把redis安装到/usr/local/bin/目录下
# cd /usr/local/redis/
%安装完成以后检查一下/usr/local/redis/ 查看是否有redis这个路径
#make install
#cd /usr/local/redis/bin/
%可以查看到redis安装的6个工具
# cd /usr/src/redis-3.0.3
# cp redis.conf /usr/local/redis/
%将配置文件拷贝到安装目录下,这样redis就可以正常启动了
#/usr/local/redis/bin/redis-server /usr/local/redis/redis.conf
$启动redis;;;启动时会锁定命令行,所以需要我们在后台运行redis
#vim /usr/local/redis/redis.conf
daemonize no改为
daemonize yes #后台启动
%第37行
#ps aux | grep redis
测试;;;
重新开一个本机的窗口来测试redis
# /usr/local/redis/bin/redis-cli -h localhost -p 6379
%客户端连接
Redis端口号6379
-h IP:连接指定的redis服务器
-p 6379:指定redis服务器的端口
-a 密码:使用密码登录
-n 数据库号:指定连接哪个数据库
--rawredis支持存储中文
关闭redis
[root@localhost ~]# /usr/local/redis/bin/redis-cli shutdown
或
[root@localhost ~]# pkill -9 redis
四、基本操作
1、数据类型: string(字符串)、hash、list(双向队列)、set(集合)、zset(有序集合)
2、string 字符类型
set
get
setnx 设置新键,若存在则放弃操作
ttl 查看生存周期,如果是-1, 表示键存在,但没有设置生存周期,如果是-2,表示键不存在,如果是秒,返回剩余周期
setex 设置生存周期
setrange 替换字符串
mset 同时设置多个新键
mget 同时获取多个新建
msetnx 同时设置多个新键 防覆盖 0为失败 1为成功
getset 显示原有值,并设置新值
getrange 获取范围值
incr 增加1
decr 减少1
incrby 增加指定值
decrby 减少指定值
append 追加值
strlen 查看长度
del 删除键
3、hash 哈希类型
hset
hget
hmget
hmset
hexists 检查字段是否存在
hsetnx 添加字段,防止覆盖
hlen 查看字段总数
hkeys 查看键对应的所有字段名称
hvals 查看键对应的所有值的名称
hdel 删除字段
4、list 双向队列/双向链表结构
lpush 添加链
lrange 显示链中的内容
lset 替换链中的指定内容
linsert 向链中插入指定内容
lpop 删除第一个数据
rpop 删除最后一个数据
lrem 删除重复数据
llen 查看链中数据的个数
5、set 集合 string类型的集合,对这个集合取并集、交集、差集
sadd 创建集合
smembers 查看集合内容
srandmember 随机抽取集合数据
spop 随机删除集合数据
scard 统计集合中数据的个数
sismember 查询某个数据是否属于集合
sdiffstore 查询差集
格式: sdiffstore 新集合 集合1 集合2
统计集合1的差集至新集合
sinter 查询交集
sunion 查询并集
smove 移动数据至指定集合
转载于:https://blog.51cto.com/11003063/1723394