redis基础(Remote Dictionary Sever,远程字典服务)
使用关系型数据库性能上会出现一些瓶颈,而瓶颈的源头一般是在磁盘的I/O上。如今对性能有了更多的需求,比如:
1.低延迟的读写速度:应用快速的反应能极大的提示用户的速度
2.支撑海量的数据和流量:对于搜索这样大型的应用而言,需要利用PB级别的数据和应用百万级的流量
3.大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理
NoSQL:同时具备高性能,可扩展性,高可利用性等优点
关系型数据库(RMDBS)和非关系型数据库(NoSQL)的对比:
数据库中表与表之间存在某种关联的内在关系,因为这种关系,所以我们称这种数据库为关系型数据库。典型的有:mysql、oracle、postgreSQL、SQLSever等。特点:(数据存在磁盘上) mysql默认端口号3306**
1.全部使用SQL(结构化查询语句)进行数据库操作
2.都存在主外键关系,表,等等关系特征。
3.大部分都支持各种关系型的数据库的特征:事物、存储过程、触发器、视图、零时表、模式、函数
NoSQL:not only sql,泛指非关系型数据库。泛指哪些不使用SQL语句进行数据操作的数据库,所有数据库中只要不使用SQL语句的都是非关系型数据库。典型:Redis、MongoDB、hbase 。(数据存在内存上)redis默认端口号6379
##
redis的特性:速度快、持久化、多种数据结构、支持多种编程语言、主从复制、高可用、分布式
redis提供的数据类型:String类型,哈希类型,列表类型,集合类型和顺序集合类型,和自定义类型
redis应用场景:缓存系统(高频读,低频写。存到内存)、计数器、消息队列
redis安装
默认安装路径是/usr/local/bin目录下
可在任意目录下运行这些命令:
redis-cli:是redis提供的命令行客户端
redis-server:是redis客户端的启动脚本 (前台启动)
redis-sentinel:是redis的哨兵启动脚本
启动redis
备份配置文件:
cp redis.conf redis.conf.bck
redis的字符串操作(单个数据的最大容量不能超过512M)
set name yuan # 设置字符串类型的键值对,name为key,yuan为value name可用赋多次值,和python有区别 get name # 获取name键的值 setnx gender male # setnx 不能对已有的键进行赋值。应用案例:分布式锁,只能一个来进行处理 # 设置键值过期的时间 setex key time value # time设置这个键过期的时间 用途:优惠价时间,验证码时间,session #设置多个键值对 mset x 1 y 2 z 3 #查询多个键值对 mget x y z #字符串拼接 set title my append title redis #自增字符串(只能是值为数字字符串) set count 90 incr count # 自减decr 自增,减1 incrby count 10 #自增,减任意 #查看值的长度 strlen title(查看键的值的长度)
1字节=8比特 1kb=1024字节 1mb=1024kb 1gb=1024mb
1个int8就是一个字节 一个中文:3个字节