0
点赞
收藏
分享

微信扫一扫

Redis的五种数据类型

1、String:key-value

redis命令不区分大小写,但是key区分的
redis中的数据都是字符串
redis是单线程(不适合存储比较大的数据)
使用incr命令,如果key 不存在,会自动创建key 并自动+1
redis中所有的数据都是字符串

set key value 设置值
get key 获取值
incr key 加一
decr key 减一

Redis的五种数据类型_持久化

2、List

List是有顺序可重复(数据结构中的:双链表,队列),可作为链表 ,从左添加元素 也可以从右添加元素

lpush list a b c d    (从左添加元素)
rpush list 1 2 3 4 (从右边添加元素)
lrange list 0 -1 (从0 -1 元素查看:也就表示查看所有)
lpop list (从左边取,删除)
rpop list (从右边取,删除)

Redis的五种数据类型_持久化_02

3、Set

Set无顺序,不能重复

sadd set1 a b c d d (向set1中添加元素) 元素不重复
smembers set1 (查询元素)
srem set1 a (删除元素)

Redis的五种数据类型_redis_03

4、Hash: key-field-value

相当于一个key 对应一个map (map中又是key- value),
应用于归类

hset key field value 设置值
hget key field 获取值
hincrby key field num 设置增数量

Redis的五种数据类型_redis_04

5、SortedSet(zset)

有顺序,不能重复
适合做排行榜 排序需要一个分数属性

zadd zset1 9 a 8 c 10 d 1 e   (添加元素 zadd key score member 
(ZRANGE key start stop [WITHSCORES])(查看所有元素:zrange key 0 -1 withscores)
如果要查看分数,加上withscores.
zrange zset1 0 -1 (从小到大)
zrevrange zset1 0 -1 (从大到小)
zincrby zset2 score member (对元素member 增加 score)

Redis的五种数据类型_持久化_05

key 命令

expire key second  (设置key的过期时间)
ttl key (查看剩余时间)-2 表示不存在,-1 表示已被持久化,正数表示剩余的时间)
persist key (清除过期时间,也即是持久化 持久化成功体提示 1 不成功0)
del key: 删除key
EXISTS key:若key存在,返回1,否则返回0
select 0 表示:选择0号数据库。默认是0号数据库

Redis持久化方案

RDB:保存到磁盘中;AOF:把数据库操作命令保存到文件中,数据库恢复时把命令重新执行一遍

Redis集群:

集群没有入口,连接任意一个即可
集群的容错机制:发送ping命令,超过半数就认为挂掉
redis集群中至少需要三台服务器来保证高可用,三个备用服务器,至少需要6台服务器,需要使用ruby脚本搭建集群
注意:单机版和集群版不能共存,使用单机版时注释集群版的配置。使用集群版,把单机版注释

Redis的使用场景

1、活动倒计时方案

1、活动开始的时间是固定的
2、使用SELECT NOW();取出当前时间并作为基准时间
3、拿活动开始时间-基准时间可以计算出一个秒为单位的数值,并作为活动过期时间
4、在redis中设置一个key(活动开始标识)。使用expire命令将第三步计算出来的时间设置为key的过期时间
5、使用redis中的Ttl命令取出key的剩余生存时间,在前台展示活动剩余的时间

2、秒杀方案

1、把商品的数量放到redis中
2、秒杀时使用redis中的decr命令对商品数量减一。如果不是负数说明抢到
3、一旦返回数值变为0说明商品已售完

RedisTemplate及其相关方法

举报

相关推荐

0 条评论