java 怎么往redis的集合中添加数据_Redis知识点整理

本文深入探讨Redis作为重要缓存服务的特性和使用。介绍了Redis的特性、数据类型、事务处理、持久化机制、发布订阅、主从复制以及哨兵模式。特别强调了Redis在处理缓存穿透、击穿和雪崩等问题的策略,如布隆过滤器、加锁机制和缓存预热等。
摘要由CSDN通过智能技术生成

      前言:redis现在可是就业面试的重中之重了,不得不深度了解学习一下了。

一、概述

1.什么是Redis?    

     远程字典服务。由C语言编写,支持网络,可基于内存亦可持久化的日志型。提供多种语言的API。也被人们称之为结构化数据。

2.Redis可用来做什么?

      根据官方文档介绍,redis可以用作数据库、缓存、消息队列

1.内存存储、持久化,内存中数据是断电即失。所以说持久化很重要

2.效率高,用于高速缓存,一秒钟可支持10万次读操作,8万次写操作

3.发布订阅信息,微博推送、微信公众号等

4.地图信息分析,使用geo数据类型,支持经纬度存储,可计算位置等

5.计时器,计数器

3.Redis的特性?

  1. 性能极高 – Redis 能读的速度是 110000 次/s,写的速度是 81000 次/s 

  2. 丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes,

Sets 及Ordered Sets 数据类型操作。还有一些特殊的数据类型

   3.原子 – Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,通过 MULTI 和 EXEC指令包起来。redis中的事务不保证原子性

   4.丰富的特性 – Redis 还支持 publish/subscribe, 通知, key 过期等等特性。

    5.持久化存储

    6.可以搭建集群

4.Redis基础知识

  1. redis默认有16个数据库,默认使用第0个。(编号0-15)

  2. 使用select  编号  命令可以切换数据库

  3. dbsize  命令查看当前数据库存储数据的大小

  4. flushdb 命令清空当前数据库

  5. flushall  命令清空所有的数据库

  6. Redis是单进程单线程的。Redis是基于内存操作的,CPU不是Redis的性能瓶颈,Redis的瓶颈是根据内存和网络带宽决定的。那么既然可以使用单线程实现,那就使用单线程。利用队列技术将并发访问变为串行访问,消除了传统数据库串行控制的开销

  7. Redis是单线程的,速度为什么这么快?

    redis将所有的数据全部放在内存中,所以说使用单线程去操作的效率就是最高的。多线程存在CPU上下文切换,对于内存系统来说,没有上下文切换的效率就是最高的。多次读写都是在一个CPU上,在内存中这个就是最佳方案

二、数据类型

1.五大基本数据类型

a.字符串(String)

//常用的APIset key value   设置键和值get key   取值append key value   往key中追加值strlen key   获取当前字符串的长度incr key   当前键对应的值加1decr key  当前键对应的值减1incrby key 10   当前键对应的值加10decrby key 10   当前键对应的值减10getrange key 0 3   截取【0,3】的字符串内容setrange key 1   xx    将字符串中下标为1的内容替换成xxsetex key  5  value (set with expire)     #设置过期时间setnx  (set if not exist)    #如果不存在则设置值mset k1 v1 k2 v2 k3 v3   批量存储mget k1 k2 k3   批量获取msetnx  k1 v1 k4 v4  #由于k1存在,所以会导致操作失败。因为msetnx是原子操作#设置对象set user:1  {
    name:zhangsan,age:3}mset user:1:name zhangsan user:1:age 2getset key value    #先get再set

   String使用场景:字符串中的value值可以是字符串也可以是数字(Integer)

  •    计数器

  •    对象缓存存储

b.列表(List)

//常用APIlpush key value   #将值插入到列表的头部lrange key  0  2    # 获取指定范围的值rpush key value   #将值插入列表的尾部lpop key    #从左侧弹出值rpop key   #从右侧弹出值lindex key 1   #通过下标获得list中的某一个值llen key   #返回列表长度lrem key 2 value  # 从List移除2个value值ltrim key 1 2  # 通过下标截取指定长度,List被改变,只剩下截取的元素rpoplpush mylist myotherlist   #移除列表的最
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值