缓存篇-redis/memcached
年份:2018
//
8-30之后新增的内容在下面
//
日期8-30
redis与memcached的区别
1>存储区别
[
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小
redis有部份存在硬盘上,这样能保证数据的持久性
]
2>数据类型区别
[
redis数据类型比memcached更加丰富
]
3>运行环境
redis目前官方只支持LINUX 上去行
日期:8-6
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统(key-value)
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性
特征
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
1协议简单
2基于libevent的事件处理
3内置内存存储方式
4memcached不互相通信的分布式
存储命令:
Set |
add |
replace |
Append |
prepend |
cas |
讲解/部分方法:
语法:
set 命令的基本语法格式如下:
set key flags exptime bytes [noreply]
value
参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes:在缓存中存储的字节数
noreply(可选): 该参数告知服务器不需要返回数据
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
查找命令
get |
gets |
delete |
Incr/decr |
讲解/部分方法:
Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。
语法:
get 命令的基本语法格式如下:
get key
多个 key 使用空格隔开,如下:
get key1 key2 key3
参数说明如下:
key:键值 key-value 结构中的 key,用于查找缓存值。
统计命令:
Stats |
Stats items |
Stats slabs |
Stats sizes |
Flush_all |
Memcached stats 命令用于返回统计信息例如 PID(进程号)、版本号、连接数等。
语法:
stats 命令的基本语法格式如下:
stats
日期:4-15
主要内容:介绍redis
1定义
Nosql= not only sql
非关系型数据库
2需要理由
高并发读写
海量数据的高效率存储和访问
高扩展性和高可用性
3分类
Nosql数据库四大分类
键值对
列存储
文档数据库
图形数据库
4 比较
5好处
Nosql
易扩展
灵活的数据模型
大数据,高性能
高可用
6 基础类型
字符串
列表
集合
散列
有序集合类型
7基本类型-基本操作方法
类型名称 |
string |
hash |
list |
set |
zset |
放 |
set |
hset |
lset |
sadd |
zadd |
取 |
get |
hget |
Lpush/rpush |
srandmember |
zrank |
删 |
del |
hdel |
Lrem/rpop |
Srem/sspop |
zrem |
7.1 基础类型-扩展方法
方法名 |
说明 |
String |
|
incr/incrby |
递增/指定 增加 |
Decr/decyby |
递减/指定 减少 |
Mset/mget |
多key 设值/取值 |
hset |
|
Hmset/hmget |
多key 设值/取值 |
hexists |
判断是否存在 |
hlen |
长度 |
list |
|
rpoplpush |
将元素从一个列表转移到另外一个列表 |
lindex |
索引 |
llen |
长度 |
set |
|
sdiff |
差集 |
sinter |
交集 |
sunion |
并集 |
zset |
|
zrank |
获取正序排序的元素的排名 |
zrevrank |
倒序 |
ZREMRANGEBYSCORE |
按照范围删除元素 |
Zremrangebyscore |
按照分数删除元素 |
8 key的通用操作方
Keys *
Keys col_name?
Del
Exists 0 不存在 1存在
Get
Rename 原始值 新值
Expire 设置过期时间
Ttl 剩余超时时间
Type key 获取key的类型
9持久化实现方式
方式名称 |
rdb |
aof |
//
分隔:新增的内容总是出现在下面
//
日期:9-6
aof与rdb比较:
RDB
执行机制:快照,直接将databases中的key-value的二进制形式存储在了rdb文件中
优点:性能较高(因为是快照,且执行频率比aof低,而且rdb文件中直接存储的是key-values的二进制形式,对于恢复数据也快)
缺点:在save配置条件之间若发生宕机,此间的数据会丢失
AOF
执行机制:将对数据的每一条修改命令追加到aof文件
优点:数据不容易丢失
缺点:性能较低(每一条修改操作都要追加到aof文件,执行频率较RDB要高,而且aof文件中存储的是命令,对于恢复数据来讲需要逐行执行命令,所以恢复慢)