一、Redis概述
1.1 Redis 介绍
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色
Redis的官网: https://redis.io/
1.2 Redis 特性
Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis 优势
- 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
- 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 SortedSets 数据类型操作。
- 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
- 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
总结:
- Redis是非关系型数据库,可以把数据保存在内存中或者硬盘中
- Redis存取数据的效率高
- Redis 是以key-value的形式存储数据,能存储Strings, Lists, Hashes, Sets 及 SortedSets 数据类型的数据
二、Redis 的下载及安装
未来补充
三、Redis 数据类型与常见操作
3.1 Redis 数据类型介绍
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
3.2 string 类型常见操作
- SET key value 设定该Key持有指定的字符串Value
- GET key 获取指定Key的Value
- MSET key value [key value ...] 同时设置多个key和value
- MGET key [key ...] 同时获取多个key的值
- SETNX key value 设置该Key持有指定的字符串Value(如果key存在就不做任何操作)
- MSETNX key value [key value ...] 设置多个值(原子性的:其中一个key存在就不做任何操作)
- APPEND key value 拼接字符串
- STRLEN key 返回指定Key的字符值长度
- SETRANGE key offset value 替换指定Key的部分字符串值
- GETRANGE key start end 截取字符串
3.3 list 类型常见操作
- LPUSH key value [value ...] 添加键和对应的多个值
- LRANGE key start stop 查询该键对应的值
- LLEN key 查询该键有多少个值
- LREM key count value 删除指定键中前count个值等于value的元素
- LSET key index value 修改指定键中指定索引位置的value
- LINDEX key index 获取指定键指定索引位置的value
- LINSERT key BEFORE|AFTER pivot value---à linsert list before 3 4
3.4 hash 类型常见操作
- HSET key field value 为指定的Key设定Field/Value对
- HGET key field 获取指定Key中指定Field的关联值
- HEXISTS key field 判断指定Key中的指定Field是否存在
- HLEN key 获取该Key所包含的Field的数量。
- HDEL key field [field ...] 从指定Key的Hashes Value中删除参数中指定的多个字段,如果不存在的字段将被忽略。
- HGETALL key 获取该键包含的所有Field/Value
- HKEYS key 获取指定Key的所有Fields名
- HVALS key 返回指定Key的所有Values名。
- HMSET key field value [field value ...] 逐对依次设置参数中给出的Field/Value对
- HMGET key field [field ...] 获取和参数中指定Fields关联的一组Values。
3.5 set 类型常见操作
- SADD key member [member ...] 添加键和对应的值
- SMEMBERS key 获取与该Key关联的Set中所有的成员
- SCARD key 获取Set中成员的数量
- SREM key member [member ...] 从与Key关联的Set中删除参数中指定的成员
- SDIFF key [key ...] 获取第一个key和后面所有key中不同的部分
- SINTER key [key ...] 获取所有Keys关联的Sets中成员的交集
- SUNION key [key ...] 获取所有Keys关联的Sets中成员的并集
3.6 sortedSet 类型常见操作
- ZADD key score member [score] [member] 添加成员
- ZCARD key 统计个数
- ZRANGE key start stop [WITHSCORES] 根据索引获取成员
- ZRANGEBYSCORE key min max 根据分数获取成员
- ZRANK key member 获取成员的索引位置
- ZSCORE key member 获取成员的分数
- ZREM key member [member ...] 删除成员
3.7 其他操作
- KEYS pattern 获取所有匹配pattern参数的Keys
- DEL key [key ...] 删除指定的keys
- EXPIRE key seconds 为参数中指定的Key设定超时的秒数,在超过该时间后,Key被自动的删除
- PERSIST key 取消key的过期时间
- TTL key 获取该键所剩的超时描述
3.8 事务操作
- MULTI 开启事务
- EXEC 执行事务
- DISCARD 取消事务