目录
2.3.2.1 redis数据结构和常用命令
1、Redis介绍
Redis是一个开源的使用C语言编写、支持网络、可基于内存、可持久化的日志型、Key-Value数据库,
并提供多种语言的API。
本质是客户端-服务端应用软件程序。
特点是使用简单、性能强悍、功能应用场景丰富。
Redis中文官网:http://www.redis.cn/
2、通用命令
DEL key:该命令用于在key存在时删除key
DUMP key:序列化给定key,并返回被序列化的值
EXISTS key:检查给定key是否存在
EXPIRE key seconds:为给定key设置过期时间,以秒计
TTL key:以秒为单位,返回给定key的剩余生存时间(TTL:time to live),多久失效
TYPE key:返回key所储存的值的类型
keys *:会变量redis所有数据,并打印出key值(生产环境不建议使用)
3、安装radis
1、进入redis下载目录:cd /home/download/
2、将redis解压到/usr/local目录下: tar -zxzf redis-5.0.3.tar.gz -C /usr/local
3、进入redis解压的目录:cd /usr/local
4、redis-5.0.3重命名为redis:mv redis-5.0.3 redis
5、编译redis:make
6、启动Redis:src/redis-server
官网参考文档:http://www.redis.cn/download.html
新开一个xhell会话:
1、进入redis安装目录:cd /usr/local/redis/
2、redis客户端连接本机:src/redis-cli -h 127.0.0.1 -p 6379
3、就可以向redis中set、get、del数据了
redis命令操作
4、数据结构
4.1、String
String数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。
使用场景:微博数、粉丝数(常规计数)
常用命令:get(获取指定key的值)
set(设置指定key的值)
incr(将key中储存的数字值增一)
decr(将key中储存的数字值减一)
mget(获取所有(一个或多个)给定key的值)
官网地址:http://www.redis.cn/commands.html
4.2、List
List就是链表
使用场景:微博的关注列表、粉丝列表
常用命令:lpush(将一个或多个值插入到列表头部)
rpush(在列表中添加一个或多个值)
lpop(移除并获取列表的第一个元素)
rpop(移除列表的最后一个元素,返回值为移除的元素)
lrang(获取所有(一个或多个)给定key的值)
4.3、Set
Set就是一个集合,集合的概念就是一堆不重复值的组合。
利用Redis提供的Set数据结构,可以存储一些集合性的数据。
使用场景:实现如共同关注、共同喜好、二度好友
常用命令:Sadd(向集合中添加一个或多个成员)
Spop(移除并返回集合中的一个随机元素)
Smembers(返回集合中的所有成员)
Sunion(返回所有给定集合的并集)
4.4、Sorted set
Sorted set的使用场景与set类似,区别是set不是自动有序的,而Sorted set可以通过用户额外提供
一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。
使用场景:排行榜、按照用户投票和时间排序
常用命令:Zadd(向有序集合中添加一个或多个成员,或者更新已存在成员的分数)
Zrange(通过索引区间返回有序集合中指定区间内的成员)
Zrem(移除有序集合中的一个或多个成员)
Zcard(获取有序集合的成员数)
4.5、Hash
Hash是一个string类型的field和value的映射表(与java的hashmap类似)
使用场景:存储部分变更数据,如用户信息
常用命令:Hget(获取存储在哈希表中指定字段的值)
Hset(将哈希表key中的字段field的值设为value)
Hgetall(获取在哈希表中指定key的所有字段和值)
4.6、GEO
GEO 3.2版本开始对GEO(地理位置)的支持
使用场景:LBS应用开发
LBS:Location Based Services(基于位置的服务)
常用命令:GEOadd(增加地理位置的坐标,可以批量添加地理位置)
GEOdist(获取两个地理位置的距离)
GEOhash(获取某个地理位置的geohash值)
GEOpos(获取指定位置的坐标,可以批量获取多个地理位置的坐标)
GEOradius(根据给定地理位置坐标获取指定范围内的地理位置集合)
注意:该命令的中心点由输入的经度和纬度决定
GEOradiusBymember(根据给定成员的位置获取指定范围内的位置信息集合)
注意:该命令的中心点由给定的位置元素决定
4.7、Stream
Stream 5.0版本开始的新结构“流”
使用场景:消费者生产者场景(类似MQ)
常用命令:Xadd(往指定的流中添加消息)
Xlen(stream流中的消息数据)
Xdel(删除流中的消息)
Xrange(返回流中满足给定ID范围的消息)
Xread(从一个或者多个流中读取消息)
Xinfo(检索关于流和关联的消费者组的不同的消息)
5、Spring使用redis
官网文档示例:https://docs.spring.io/spring-data/redis/docs/2.1.5.RELEASE/reference/html/#redis
2.3.2.2 持久化机制
2.3.2.3 redis内存管理
2.3.2.4 redis主从复制
2.3.2.5 哨兵高可用机制
2.3.2.6 redis集群分片存储
2.3.2.7 redis监控