Redis
什么是Redis?
Redis是一个开源的使用C语言编写、遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的键值对(key-value)存储数据库,提供了多种语言的API,也被称为NoSQL数据库。
NoSQL,不仅仅是SQL,泛指非关系型数据库。NoSQL数据库并不是要取代关系型数据库,而是关系型数据库的补充。
关系型数据库(RDBMS)
- MySQL
- Oracle
- DB2
- SQLServer
非关系型数据库(NoSQL)
- Redis
- Mongo db
- MemCached
应用场景
缓存
任务队列
消息队列
分布式锁
五种常用数据类型
- 字符串 string
- 哈希 hash
- 列表 list
- 集合 set
- 有序集合 sorted set
字符串 string 常用命令
SET key value # 设置指定key的值
GET key # 获取指定key
SETEX key seconds value # 设置指定key的值,并将key的过期时间设置为seconds秒
SETNX key value # 只有在key不存在是设置key的值
哈希 hash 常用命令
HSET key field value # 将哈希表key中的字段field的值设为value
HGET key field # 获取存储在哈希表中的指定字段值
HDEL key field # 删除存储在哈希表中的指定字段
HKEYS key # 获取哈希表中所有字段
HVALS key # 获取哈希表中所有值
HGETALL key # 获取在哈希表中指定key的所有字段和值
列表 list 常用命令
LPUSH key value1 [value2] # 将一个或多个值插入到列表头部
LRANGE key start stop # 获取列表指定范围内的元素
RPOP key # 移除并获取列表最后一个元素
LLEN key # 获取列表长度
BRPOP kys1 [key2] timeout # 移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表知道等待超时或发现可弹出元素为止
集合 set 常用命令
SADD key member1 [member2] # 向集合添加一个或多个成员
SMEMBERS key # 返回集合中的所有成员
SCARD key # 获取集合的成员数
SINTER key1 [key2] # 返回给定所有集合的交集
SUNION key1 [key2] # 返回所有给定集合的并集
SDIFF key1 [key2] # 返回给定所有集合的差集
SREM key member1 [member2] # 移除集合中一个或多个成员
有序集合 sorted set 常用命令
通过socre来为集合中的成员进行从小到大排序
ZADD key score1 member1 [score2 member2] # 向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZRANGE key start stop [WITHSCORES] # 通过索引区间返回有序集合中指定区间内的成员
ZINCRBY key increment member # 有序集合中对指定成员的分数加上增量increment
ZREM key member [member] # 移除有序集合中的一个或多个成员
通用命令
KEYS pattern # 查找所有符合给定模式(pattern)的key
EXISTS key # 检查给定key是否存在
TYPE key # 返回key所存储的值的类型
TTL key # 返回给定key的剩余生存时间(TTL,time to live),以秒为单位
DEL key # 删除key