redis介绍:
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
redis连接命令:
CONFIG GET requirepass :查看设置的密码验证
CONFIG SET requirepass :设置密码
AUTH {password} :验证密码是否正确
ECHO {message} :打印字符串
PING :查看服务是否运行
SELECT {index} : 选择指定索引的数据库
reids 服务器常用命令:
SAVE :同步保存数据到硬盘
BGSAVE : 在后台异步保存当前数据库的数据到磁盘
INFO :获取 Redis 服务器的各种信息和统计数值
FLUSHDB :删除当前数据库的所有key
FLUSHALL :删除所有数据库的所有key
DBSIZE :返回当前数据库的 key 的数量
TIME :返回当前服务器时间
CLIENT LIST :获取连接到服务器的客户端连接列表
CLIENT KILL {ip:port} :关闭客户端连接
redis配置:
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf
通过 CONFIG 命令查看或设置配置项
CONFIG GET * : 读取所有配置
CONFIG GET {setting_name} : 读取指定配置值
CONFIG SET {setting_name} {setting_value} : 设定指定配置值
redis五种数据类型:
string(字符串):
SET {key} {value}:设置指定 key 的值
GET {key}:获取指定 key 的值
GETRANGE {key} {start} {end} :返回 key 中字符串值的子字符
MSET {key} {value} ...:同时设置一个或多个 key-value 对
MGET {key} ...:获取所有(一个或多个)给定 key 的值
STRLEN {key}:返回 key 所储存的字符串值的长度
INCR {key}:将 key 中储存的数字值增一
INCRBY {key} {increment}:将 key 所储存的值加上给定的增量值(increment)
DECR {key}:将 key 中储存的数字值减一
DECRBY {key} {increment}:key 所储存的值减去给定的减量值(decrement
APPEND {key}:将指定的 value 追加到该 key 原来值(value)的末尾
has(哈希)
HSET {key} {value}:将哈希表 key 中的字段 field 的值设为 value
HGET {key}:获取存储在哈希表中指定字段的值
HMSET {key} {field} {value} ...:同时将多个 field-value (域-值)对设置到哈希表 key 中
HMGET {key} {field} ...:获取所有给定字段的值
HDEL {key} {field} ...:删除一个或多个哈希表字段
HEXISTS {key} : 查看哈希表 key 中,指定的字段是否存在
HGETALL {key}:获取在哈希表中指定 key 的所有字段和值
HINCRBY {key} {field} {increment}:为哈希表 key 中的指定字段的整数值加上增量 increment
HKEYS {key}:获取所有哈希表中的字段
HVALS {key}:获取哈希表中所有值
HLEN {key}:获取哈希表中字段的数量
list(列表):
LPUSH/RPUSH {key}:添加一个元素到列表的头部或者尾部
LPOP/RPOP {key}:移出并获取列表的第一个/最后一个元素
LLEN {key}:获取列表长度
LRANGE {key} {start} {stop} :获取列表指定范围内的元素
LTRIM {key} {start} {stop} :对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
LSET {key} {index} {value} :通过索引设置列表元素的值
LINDEX {key} {index}:通过索引获取列表中的元素
set(集合):
SADD {key} {member}...:向集合添加一个或多个成员
SCARD {key}:获取集合的成员数
SDIFF {key} ...:返回给定所有集合的差集
SINTER {key} ...:返回给定所有集合的交集
SUNION {key} ...:返回所有给定集合的并集
SISMEMBER {key} {member} :判断 member 元素是否是集合 key 的成员
SMEMBERS {key}:返回集合中的所有成员
SPOP {key} :移除并返回集合中的一个随机元素
SREM {key} {member}...:移除集合中一个或多个成员
SMOVE {source} {destination} {member} :将 member 元素从 source 集合移动到 destination 集合
zset(有序集合):
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序
有序集合的成员是唯一的,但分数(score)却可以重复
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
ZADD {key} {score} {member}...:向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD {key} :获取有序集合的成员数
ZCOUNT {key} {min} {max} :计算在有序集合中指定区间分数的成员数
ZSCORE [key} {member} :返回有序集中,成员的分数值
ZRANK {key} {member} :返回有序集合中指定成员的索引
ZREVRANK {key} {member} :返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
ZREM {key} {member}...:移除有序集合中的一个或多个成员
ZREMRANGEBYLEX {key} {min} {max} :移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYSCORE {key} {min} {max} :移除有序集合中给定的分数区间的所有成员
ZREMRANGEBYRANK {key} {start} {stop} :移除有序集合中给定的排名区间的所有成员
redis事务:
Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:
批量操作在发送 EXEC 命令前被放入队列缓存
收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行
在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中
一个事务从开始到执行会经历以下三个阶段:
开始事务
命令入队
执行事务
MULTI 标记一个事务块的开始
EXEC 执行所有事务块内的命令
DISCARD 取消事务,放弃执行事务块内的所有命令
WATCH {key, ...}监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
UNWATCH 取消 WATCH 命令对所有 key 的监视
redis发布订阅:
一个频道(channel)可以被多个客户端订阅(subcribe)
当新消息发布(publish)给频道(channel)时,这个消息会被发送给订阅它的客户端
SUBSCRIBE {channel} :订阅频道
UBSUBSCRIBE {channel} :取消订阅
PUBLISH {channel} {message} :发布消息