前言
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
三大作用
- 数据库
- 缓存
- 消息中间件MQ
拓展:
redis的瓶颈:
redis是单线程的,基于内存操作,cpu不是性能瓶颈 ,瓶颈是内存和网络带宽
redis为什单线程速度快
redis将所有的数据放到内存中的,所以单线程是最高的,因为多线程cpu上下门切换耗时更多,对于内存系统来说如果没有上下文切换,单线程是最佳的。cpu切换是在1000-1500纳秒之间。
五大类型
Strings (字符串)
Hashes (散列)
Lists (列表)
Sets (集合)
Sorted Sets (有序集合)
三种特殊数据类型
Bitmap
Geo
GEOADD
Redis基本操作
Redis默认有16
个数据库
vim /redis.conf # 查看配置文件
库的编号是0-15
默认进入的是0号库
select 2
切换第二个数据库
set name jack
创建一个name 值为 jack 的键
type name
查看name键的值类型
MSET age1 10 age2 20
同时创建多个值
DBSIZE
查看数据库的容量
keys *
查看当前数据库所有的key*
get name
查看name键的值
flushdb
清空当前库
flushall
清空所有库 (开启RDB持久化,数据保存在了磁盘上)
exists name
判断name 键是否存在 如果返回1 存在 ,0不存在
move name 2
移动name键 到2号库
del name
删除name键
EXPIRE name 30
设置name键的值有效期为30秒,过期后清空值(1.例如存储cookie,半个月后过期 2.单点登录,设置过期时间 3.验证码 )
TTL name
查看剩余时间
过期后值为空