文档介绍:基于内存亦可持久化的日志型数据库
Redis
赵渝强
collen7788@
Agenda
Redis特点及安装
Redis键值操作
Redis数据类型
事务和锁机制
消息订阅
持久化
集群
Redis的Java客户端
运维
仿微博实战
Redis的特点和安装
Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis提供了一些丰富的数据结构
包括 lists, sets, ordered sets 以及 hashes ,
还有和Memcached一样的 strings结构.
Redis当然还包括了对这些数据结构的丰富操作。
Redis的高级特性
数据结构丰富
持久化
支持简单事务
主从配置方便
Redis的安装
安装:
不必configure
make
make PREFIX=/usr/local/redis install
启服务
./redis-server /path/to/
Redis的连接
Redis的协议是基础文本的协议,(http,memcached也是)客户端的开发较为简便。
Redis官方提供了C,java,C#,PHP,lua脚本的客户端
我们在学****时,用到redis-cli 官方客户端及Java-Redis客户端
在与redis-server同一目录下,redis-cli即是
Redis的键值操作-1
操作
说明
keys pattern
支持*,?,[]匹配
randomkey
随机返回key,但不删除
exists key
判断key是否存在,返回1/0
type key
判断key的类型。返回string,set,zset,link,hash
expire key
用秒设置生命周期
pexpire key
用毫秒设置生命周期
persist key
使key变为永久
ttl key
查询key的剩余生命周期(返回秒)
pttl key
查询key的剩余生命周期(返回毫秒)
对于不存在的key或过期key,返回-1
-2
Redis的键值操作-2
操作
说明
DEL key [key ...]
删除多个key,返回真正被删除的key数量
rename key newkey
重命名key->newkey。如果newkey存在,值被覆盖
renamenx key newkey
同rename,只是newkey存在时,不进行操作
move key db
移动key到另一个db,如果另一db有相同key,不做操作
Redis的数据类型及命令
Redis的数据类型
字符串
链表
Hash(Map)
集合(无序、有序)
字符串类型
String:最基础的类型,二进制的数据 512M
set 、get、append
mset 、mget 、incr、decr
链表List
lpush、lrange、lpop
rpush、rrange、rpop