Redis

Redis
redis实现高并发主要依靠主从架构,一主多从,一般来说很多项目就够了,单机主要用来写数据,单机的话几万QPS,多从主要用来查询数据,多个实例可以提供每秒十万左右的QPS。
如果实现高并发的同时,容纳大量数据,那么就要redis集群,使用redis集群后,可以提供每秒几十万的读写并发。redis的性能主要取决于CPU的型号,以下是redis官方文档的截图
redis高可用,如果是是主从架构部署,可以加上哨兵机制,任何一个实例宕机片可以实现主从切换。

与MONGODB区别
MongoDB 更类似 MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询 JSON 数据,能存储海量数据,但是不支持事务。
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,支持多种类型的数据结构,可用作数据库,高速缓存和消息队列代理。
PV、TPS、QPS
pv 是指页面被浏览的次数
tps是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加
qps是指每秒内查询次数,比如执行了select操作,相应的qps会增加
RPS=并发数/平均响应时间
redis使用场景
热点数据、限时业务、计数器相关问题(incrby的原子性递增)、排行榜(速度快)、延时操作(给key加上过期时间)、点赞关系(set除重)、队列(list push/pop)

Java使用redis
https://www.runoob.com/redis/redis-java.html

Redis 命令:

使用命令SET将值“ fido”存储在键“ server:name”中:

SET server:name "fido"

因此我们稍后可以询问“密钥服务器:名称中存储的值是多少?” Redis会回复“ fido”:

GET server:name => "fido"

有一个命令可以测试给定密钥是否存在:

EXISTS server:name => 1
EXISTS server:blabla => 0

==========================================================================
DEL删除给定的键和关联值, INCR原子地增加存储在给定键上的数字:
SET connections 10
INCR connections => 11
INCR connections => 12
DEL connections
INCR connections => 1
可以将键中包含的数字增加特定数量:
INCRBY connections 100 => 101
有类似的命令以减少密钥的值。
DECR connections => 100
DECRBY connections 10 => 90

SET resource:lock "Redis Demo"
EXPIRE resource:lock 120

这将导致密钥resource:lock在120秒内删除。您可以使用TTL命令测试密钥存在多长时间。它返回直到将其删除的秒数。

==========================================================================
RPUSH将新元素放在列表的末尾。
RPUSH friends “Alice”
RPUSH friends “Bob”
LPUSH将新元素放在列表的开头。
LPUSH friends “Sam”

LRANGE给出列表的子集。它以要检索的第一个元素的索引为第一个参数,以要检索的最后一个元素的索引为第二个参数。第二个参数的值-1表示检索元素直到列表的末尾,-2表示包括最多倒数第二个,依此类推。
LRANGE friends 0 -1 => 1) “Sam”, 2) “Alice”, 3) “Bob”
LRANGE friends 0 1 => 1) “Sam”, 2) “Alice”
LRANGE friends 1 2 => 1) “Alice”, 2) “Bob”

到目前为止,我们探索了使您可以向列表中添加元素的命令以及使您可以检查列表范围的LRANGE。Redis列表的基本功能是能够删除列表开头或结尾的元素,并同时将其返回给客户端。
LPOP从列表中删除第一个元素并返回它。
LPOP friends => “Sam”
RPOP从列表中删除最后一个元素并返回它。
RPOP friends => “3”
请注意,列表现在仅包含四个元素:
LLEN friends => 4
LRANGE friends 0 -1 => 1) “Alice” 2) “Bob” 3) “1” 4) “2”

RPUSH和LPUSH命令是可变参数,以便可以指定在相同的命令执行多个元件。
RPUSH friends 1 2 3 => 6
提示:RPUSH和LPUSH在操作后返回列表的总长度。
您还可以使用LLEN获取列表的当前长度。
LLEN friends => 6

SADD将给定的成员添加到集合中,该命令也是可变的。
SADD superpowers “flight”
SADD superpowers “x-ray vision” “reflexes”
SREM从集合中删除给定的成员,返回1或0表示该成员是否确实存在。
SREM superpowers “reflexes” => 1
SREM superpowers “making pizza” => 0

======================================================================
SISMEMBER测试给定值是否在集合中。如果该值存在,则返回1,否则返回0。
SISMEMBER superpowers “flight” => 1
SISMEMBER superpowers “reflexes” => 0
SMEMBERS返回此集合的所有成员的列表。
SMEMBERS superpowers => 1) “flight”, 2) “x-ray vision”
SUNION组合两个或更多集合,并返回所有元素的列表。
SADD birdpowers “pecking”
SADD birdpowers “flight”
SUNION superpowers birdpowers => 1) “pecking”, 2) “x-ray vision”, 3) “flight”
如果我们尝试添加的元素已经在内部,则返回0,否则 SADD返回1:
SADD superpowers “flight” => 0
SADD superpowers “invisibility” => 1
略。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值