首页 > 其他分享 >zzuli-production practice 2

zzuli-production practice 2

时间:2024-07-12 21:25:37浏览次数:16  
标签:redis zzuli practice Redis springframework production key org redisTemplate

1. 安装配置Redis并练习基础命令操作

  1. 官网:https://redis.io

  2. 中文网:Redis中文网

  3. 解压直接可以使用:

    • redis.windows.conf:配置文件

    • redis-cli.exe:redis的客户端

    • redis-server.exe:redis服务器端

安装Redis服务

1、由于上面虽然启动了redis,但是只要一关闭cmd窗口,redis服务就会停掉,所以考虑把redis安装为windows本地服务,随机启动。 2、安装服务

进入Redis安装目录执行以下命令:

redis-server --service-install redis.windows.conf --loglevel verbose

3、常用的redis服务命令。 ​

卸载服务:redis-server --service-uninstall ​

开启服务:redis-server --service-start ​

停止服务:redis-server --service-stop

  • 查看服务器信息info
  • 设置键值对set key value
  • 获取键值对get key
  • 删除键del key
  • 列出所有键keys *
  • 字符串自增incr key
  • 列表操作lpush key valuerpop key
  • 集合操作sadd key membersmembers key
  • 哈希操作hset key field valuehget key field
  • 排序sort key
  • 事务multiexec
  • 过期时间expire key seconds
  • 持久化save 或 bgsave

2. 练习Java客户端及SpringBoot项目中使用Redis

添加依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置Redis
# application.properties
spring.redis.host=localhost
spring.redis.port=6379
使用RedisTemplate
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

@Service
public class RedisService {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    public void setCache(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }

    public Object getCache(String key) {
        return redisTemplate.opsForValue().get(key);
    }
}

3. 完成案例,在查询方法中使用Redis做缓存

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    private RedisTemplate<String, User> redisTemplate;

    public User getUserById(int id) {
        String cacheKey = "user:" + id;
        User user = (User) redisTemplate.opsForValue().get(cacheKey);
        if (user == null) {
            // 如果缓存中没有数据,则从数据库中获取
            user = loadUserFromDatabase(id);
            // 将数据存入缓存
            redisTemplate.opsForValue().set(cacheKey, user);
        }
        return user;
    }

    private User loadUserFromDatabase(int id) {
        // 从数据库加载用户信息的代码
        // ...
    }
}

这样,每次调用 getUserById 方法时,都会先尝试从 Redis 缓存中获取数据。如果缓存中没有,则从数据库中加载并存入缓存,从而提高了查询效率。

标签:redis,zzuli,practice,Redis,springframework,production,key,org,redisTemplate
From: https://blog.csdn.net/m0_67996574/article/details/140388594

相关文章

  • Securing Large Language Models: Threats, Vulnerabilities and Responsible Practic
    本文是LLM系列文章,针对《SecuringLargeLanguageModels:Threats,VulnerabilitiesandResponsiblePractices》的翻译。保护大型语言模型:威胁、漏洞和负责任的做法摘要1引言2背景3LLM的安全和隐私问题4对抗性攻击和LLM漏洞5LLM的风险和失误6风险缓解策......
  • ZZULIOJ157:素数判定
    方法一:#include<stdio.h>#include<math.h>intmain(){intn,i;scanf("%d",&n);for(i=2;i<n;i++)//解题思路:一个素数只能被1和本身整除,任何数都能被1整除,所以我们将设置除数从2开始,如果除数一直递增到被除数n的前一位也就是n-1还不能被整除,那么说明输入的n为......
  • 【ZZULIOJ】1105: 判断友好数对(函数专题)
    题目描述输入两个正整数m和n,顺序输出m到n之间的所有友好数对。如果两个整数的所有正因子之和(包括1,不包括自身)等于对方,就称这对数是友好的。例如:1184和1210是友好数对,因为1184的因子之和为1+2+4+8+16+32+37+74+148+296+592=12101210的因子之和为1+2+5+10+11+22+55+110+121+2......
  • zzulioj1042答案c语言
    ​(方法一:使用函数体)#include<stdio.h>#include<math.h>intt;//t输入这里的t是一个全局变量doubleturn(doublem,doublen,doublea,doublesum,doubleflag);intmain(){doublem,n,a,sum=0,flag=1;//m分子,n分母,a项数,sum和,flag变换符号scanf("%d",......
  • Practice
    1.以读写方式打开一个普通文件,且当其不存在时要创建它,应指定的mode参数是(D)A.r+B.rw+C.rwD.w+E.r2.以下那一个是fseek(FILE*stream,longoffset,intwhence)中whence的合法值?DA.SEEK_OOPB.SEEK_BIGC.SEEK_TELD.SEEK_SETE.SEEK_GET3.已知字符‘A’的ASCII代码值是65......
  • Practice
    18.链表只能一个接着一个遍历,不允许通过随机访问7.链表的地址是连续的,通过内部的指针来进行访问//假设该链表只给出了头指针head。在不改变链表的前提下,请设计一个尽可能高效的算法,//查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的data值,并返回......
  • process scheduling (进程调度)& practice 1 process operation
    进程切换并发进程的切换并发进程中,一个进程在执行过程中可能被另一个进程替换占有CPU,这个过程称为“进程切换”是什么触发了进程切换?进程切换时要做什么?操作系统到底做了什么操作2中断技术中断是指程序执行过程中当发生某一个事件时,中止cpu上现行的程序的运行in......
  • GRPC - Load testing Production-Grade APIs
      https://ghz.sh/  ......
  • GRPC - Unit testing Production-Grade APIs
      ......
  • shell practice 04
    #!/bin/bash#author:Chiweiming#version:v1#date:2024-03-26<<COMMAND检查某个目录下的所有文件和目录,看是否满足下面条件:1)所有文件权限为6442)所有目录权限为7553)文件和目录所有者为xxx,所属组为xxx如果不满足,改成符合要求注意:不要直接修改权限,一定要有判断的......