一、Redis 数据类型
String :字符串 一个key对应一个value 基本数据类型 一个键最大值能存储512MB
> SET <String> <value>
> GET <String>
Hash :哈希 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
> HMSET <String> field1 <Value1> field2 <Value2>
> HGET <String> field1
List:列表
> lpush <String> <Value>
>lrange <String>
Set:集合
>sadd String <value>
>smembers <String>
zset(sorted set: 有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
> zadd String value
>ping //该命令用于检测redis 服务是否启动
二、命令:
1、基本命令
Redis 客户端的基本语法为
# redis-cli //该命令会连接本地的redis 服务
# Redis-cli -h host -p port -a password //在远程服务上执行命令
# redis-cli --raw 避免中文乱吗
1)DEL key //如果key 存在时删除key
2)DUMP key //序列化给定key, 并返回被序列化的值
3)EXISTS key //检查给定key 是否存在
4)EXPIRE key seconds //为给定的key 设置过期时间 以秒计
5)PEXPIRE key millseconds //设置 key 的过期时间以毫秒计
6)EXPIREAT key timestamp //设置过期时间 不同在于EXPIREAT 命令接收的时间参数是UNIX时间戳秒
7)PEXPIREAT key milliseconds-timestamp 就收时间戳毫秒
8)KEYS pattern //查找所有符合给定模式的key
9)MOVE key db 将当前数据库的key移动到给定的数据库db当中
10)PERSIST key //移除key的过期时间,key将持久保持
11)PTTL key //以毫秒为单位返回key的剩余的过期时间
12)TTL key //以秒为单位返回给定key的剩余生存时间
13)RANDOMKEY //从当前数据库中随机返回一个key
14)RENAME key newKey //修改key的名称
15)RENAMENX key newkey //仅当newkey 不存在时,将key改名为newkey
16)TYPE key //返回key所存储的值的类型
2、发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
2)发布订阅命令
PSUBSCRIBE pattern [patern …..]
订阅一个或多个符合给定模式的频道
PUBSUB subcommand [argument [argument….]]
查看订阅与发布系统状态
PUSLISH channel message
将信息发送到指定的频道
PUNSUBSCRIBE [channel [channel ….]]
退订所有给定模式的频道
SUBSCRIBE channel [channel…..]
订阅给定的一个或多个频道的信息
UNSUBSCRIBE [channel [channel…..]]
指退订给定的频道
3、事务
Redis 事务可以一次执行多个命令,并且带有以下三个重要的保证
1)、批量操作在发送EXE 命令前被放入队列缓存
2)、收到EXEC命令后事务执行,事务中任意命令执行失败,其余的命令依然被执行。
3)、在事务的执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中
一个事务从开始到执行会经历以下三个阶段
开始事务===> 命令入队 ==> 执行事务
实例:
> MULTI
> SET book “java”
> GET book
> SADD tag “c++” “php”
>SMEMBERS tag
> EXEC
单个redis 命令的执行时原子性的, Redis 事务的执行并不是原子性的。量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。
1)DISCARD //取消事务,放弃执行事务块内的所有命令
2)EXEC // 执行所有事务块内的命令
3)MULTI // 标记一个事务块的开始
4)UNWATCH //取消WATCH 命令对所有key的监视
5)WATCH [ key [key ……]] //监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
4、Redis 数据备份与恢复
该命令将在 redis 安装目录中创建dump.rdb文件。
>SAVE
如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令
> CONFIG GET dir
创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。
>BGSAVE
5、Redis 安全
通过以下命令查看是否设置了密码验证默认情况下 requirepass 参数是空的,意味着你无需通过密码验证就可以连接到 redis 服务
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
设置密码
>CONFIG set requirepass “password”
> CONFIG get requirepass
登录
>AUTH password
6、性能测试
redis-benchmark [option] [option value]