最近节日
正在加载日历...----
Redis是一款基于内存存储的、使用类似于Map结构的NoSQL数据库。

Redis是一款基于内存存储的、使用类似于Map结构的NoSQL数据库。
通常,在应用程序中,将使用Redis存储一些数据,并且,在程序的执行过程中,将优先从Redis中查询数据,以提高查询效率, 同时,也能减轻MySQL等数据库服务器的压力,甚至起到保护MySQL等数据库服务器的作用。
内存存储:Redis的数据都是存储在内存(RAM)中的,所以,读写效率非常高,由于是存储在内存中的,所以,断电后数据会全部丢失, 但是,Redis自身会处理持久化存储(自动的将内存中的数据也存储到硬盘上),所以,简单使用时,并不用担心重启、关机后Redis丢失数据的问题
类似Map结构:在Redis中存入的数据都要求自定义一个名称,类似于Map中的Key,具体存入的值就是对应的Value,甚至,当反复使用同一个Key存入数据时, 事实上是后续的存入覆盖前序的存入
NoSQL数据库:只要是能够存储数据、具有存取功能的,都可以称之为数据库,Redis与传统的关系型数据库不同,它并不会使用到SQL语句来操作数据, 只需要简单的读写即可,所以,一般称之为NoSQL数据库(其实,还有其它NoSQL数据库,与Redis完全不同,例如Elasticsearch等)
登录Redis客户端:在终端输入redis-cli并执行即可
停止Redis服务:在登录Redis客户端后,执行shutdown
启动Redis服务:在终端执行redis-server,在Linux等操作系统,可以在此命令后添加 &(空格加&符号)避免窗口被独占
简单的测试Redis是否正常工作:在登录Redis客户端后,执行ping,正常情况下,将得到PONG回应
简单的存入数据: 在登录Redis客户端后,使用set K V的格式即可存入数据,例如:set name jack
简单的取出数据:在登录Redis客户端后,使用get K的格式即可取出数据,例如:get name,如果没有此K
对应的数据,则返回(nil),相当于Java中的null
查询Key:在登录Redis客户端后,使用keys命令可以查询Key,在此命令后,可以添加空格加星号,则表示查询所有Key,
例如:keys *,在keys命令的空格之后,可以使用星号作为通配符,但也可以不是直接使用星号,例如可以写成:keys p*
,则表示找出所有以p开头的Key
清空redis:在登录Redis客户端后,执行flushall即可清空Redis
在Spring Boot项目中,要实现Redis编程(通过程序读写Redis),需要添加依赖:spring-boot-starter-data-redis。
Redis编程主要使用RedisTemplate工具类,此工具类是有2个泛型的类型的(类似于Map),通常,
建议使用String和Serializable这2个类型分别表示K和V的泛型类型。
在Redis中,各数据的Key都是一个自定义的“名称”,只存取一致,这个Key值是不影响基本使用的!
在开发实践中,由于需要存、取的数据可能较多,为了便于统一管理,这些Key值应该有一定的规律,通常,
建议把数据的类型作为Key中的必要部分,例如“品牌”数据的Key中就包含brand字样,“相册”数据的Key中就
包含album字样,如果对应的数据是列表,在Key中可以使用list字样,如果对应的只是此类型的若干数据中
的其中1个,在Key中可以使用item字样,且各项数据的Key中应该还包含数据id……
在Key中的多个单词,强烈建议使用冒号作为分隔符号,例如:
brand:list
brand:item:1
brand:item:2
album:list
album:item:8
首先,Redis的特点:
所以,使用Redis的前提应该是:
自定义组件类,实现ApplicationRunner,重写run()方法,此run()方法将在启动项目的末期自动执行。 通常用于实现: 启动项目是自动执行的任务
自定义组件类,在类中定义方法,在方法上配置@Scheduled注解,并在配置类添加@EnableScheduling开启计划任务, 则添加了@Scheduled注解的方法会根据注解配置周期性的执行 @Scheduled注解常用属性 fixedRate = 5000: 则表示每间隔5秒执行一次(每次执行,在毫秒级上可能有误差) fixedDelay = 5000:则表示每间隔5秒执行一次(距离上次执行后多久在执行下一次计划任务) cron 属性来指定某个时间点的执行周期