redis入门详解

redis–作为我学习的第一个nosql数据库,可以说not only sql,不仅仅是数据库,我觉得很多应用场景会需要运行在内存的缓存数据库,谈一下我的初步认识。

redis能够做些什么

我简单的列举一下他具体的缓存应用场景:

1、排行榜

利用redis的SortSet数据结构,使用zrevrange lb 0 2 withscores语句非常方便的对数据进行了从大到小排序。

2、计数器或者限速器

计数器主要利用redis中原子性的自增操作: INCR keyname,可以统计类似用户点击 数等,如果使用MySQL,频繁的读写会带来巨大的资源负担。
限速器主要是限制某个用户访问某个API的频率,判断语句设置次数,判断语句中使用expire keyname 1设置时间,然后在进行INCR keyname 进行自增记录次数。

3、好友关系

利用集合的一些命令,求交集、并集、差集解决一些共同好友、共同爱好的功能。

4、简单消息队列

除了redis自身的发布pulish和订阅subscribe模式,还可以利用List自定义实现一个队列机制,比如到货通知、发送短信,可以利用List来异步解耦,消息队列MQ就是更专业的解决此类问题的成熟技术。

5、Session

采用redis存错session后,无论用户落在哪台机器上都可以访问对应的session信息。

redis不能干什么

1、数据量大不合适

如果使用用户去保存用户的基本信息,虽然它能支持持久化,但他的持久化并不能保障数据的稳定,而且持久化太过频繁会增大redis的压力。

2、访问频率太低

保存这些数据在内存中纯属浪费资源。
图解

redis数据类型的使用

1、String

键值对的形式

set myKey abc //设置myKey
get myKey //获取myKey的值
2、Hash

has是一个String类型的field和value的映射表,hash对象可以存很多个键值对,大概是40亿对

HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000//hmset

HGETALL runoobkey //hgetall

HSET runoobkey name redis//改值

HDEL runoobkey name//删字段
3、List

这是一个简单的字符串列表,按照插入顺序排序,可以从头部或者尾部插入,一个列表最对可以包含2的32次方-1个元素。

LPUSH JFF redisList//从头开始插入数据

LRANGE JFF 0 10//输出全部

RPUSH JFF LAST//从尾开始插入数据

LPOP JFF //删除头列表第一个元素,并输出值
4、Set

Set是String类型的无序集合,不会出现重复的数据。

SADD JFF REDIS //添加

SMEMBERS JFF//显示所有数据

SISMEMBER JFF member//判断member在不在集合JFF中
5、SortedSet

有序集合,在集合的基础上,不同的元素都会关联一个double类型的分数,通过分数对集合中的成员进行从小到大的排序,成员唯一,但是分数可以重复。

ZADD JFF 1 REDIS//添加

ZRANGE JFF 0 10 WITHSCORES//显示全部数据

ZADD JFF 1 REDISCHANGE//更改

ZRANK JFF MEMBER//返回member的index

ZREM JFF MEMBER//删除member

以上是关于redis一些基础数据类型知识,后面还会在继续更新关于redis发布订阅、事务、持久化以及各种面试理论,请继续关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值