Redis
简介
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
Redis安装
Redis官网:https://redis.io/
Windows版本:https://github.com/tporadowski/redis/releases
Windows版本
- 解压下载好的安装包;
- 打开cmd命令窗口;
- 通过cmd 进入Redis解压后的根目录;
- 控制台输入
redis-server.exe
启动Redis服务;
- 不要关闭cmd窗口,另外启动一个cmd窗口;
- 重复第3步操作;
- 控制台输入
redis-cli.exe -h 127.0.0.1 -p 6379
启动Redis客户端并连接;
Redis数据类型
- String(字符串)
- Hash(哈希)
- List(列表)
- Set(集合)
Redis命令
连接远程服务器
$ redis-cli -h host -p port -a password
切换数据库
$ select [db]
键(Key)
命令 |
描述 |
KEYS * |
查看所有key |
DEL key |
删除key |
FLUSHALL |
清空所有key |
EXISTS key |
key是否存在 |
EXPIRE key seconds |
给key设定过期时间(以秒计) |
PEXPIRE key milliseconds |
给key设定过期时间(以毫秒计) |
PERSIST key |
移除key设定的过期时间 |
字符串(String)
命令 |
描述 |
SET key value |
设置字符串 |
GET key |
获取字符串 |
哈希(Hash)
命令 |
描述 |
HMSET key field1 value1 [field2 value2] |
同时将多个键值对设置到哈希表 key 中 |
HMGET key field1 [field2] |
获取所有给定字段的值 |
HDEL key field1 [field2] |
删除一个或多个哈希表字段 |
HGETALL key |
获取在哈希表中指定 key 的所有字段和值 |
HGET key field |
获取存储在哈希表中指定字段的值 |
HEXISTS key field |
查看哈希表 key 中,指定的字段是否存在 |
HKEYS key |
获取所有哈希表中的字段 |
HLEN key |
获取哈希表中字段的数量 |
列表(List)
命令 |
描述 |
LPUSH key value1 [value2] |
将一个或多个值插入到列表头部(入栈) |
RPUSH key value1 [value2] |
在列表中添加一个或多个值(入队) |
LPOP key |
移出并获取列表的第一个元素(出栈) |
RPOP key |
移除列表的最后一个元素,返回值为移除的元素(出队) |
LLEN key |
获取列表长度 |
集合(Set)
命令 |
描述 |
SADD key member1 [member2] |
向集合添加一个或多个成员 |
SREM key member1 [member2] |
移除集合中一个或多个成员 |
SMEMBERS key |
返回集合中的所有成员 |
SINTER key1 [key2] |
返回给定所有集合的交集 |
有序集合(sorted set)
命令 |
描述 |
ZADD key score1 member1 [score2 member2] |
向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
ZREM key member [member ...] |
移除有序集合中的一个或多个成员 |
ZREMRANGEBYLEX key min max |
移除有序集合中给定的字典区间的所有成员 |
ZRANGE key start stop [WITHSCORES] |
通过索引区间返回有序集合指定区间内的成员 |
ZCARD key |
获取有序集合的成员数 |
ZCOUNT key min max |
计算在有序集合中指定区间分数的成员数 |