Redis的基础篇

Redis的基础篇

1.在CentOs7上安装Redis(最好不要在windows上装,版本少)

复制代码
1.安装gcc --> `yum install gcc tcl`
 (可能会报错,重新安装yum就行了)
2.下载redis --> 最好是6.2上的版本
3.解压redis --> `tar -zxvf redis-6.2.x.tar.gz`(放在/usr/local/src下)
4.cd redis6.2.x , make && make install

一些常见的命令

复制代码
 - redis-cli:是redis提供的命令行客户端
 - redis-server:是redis的服务端启动脚本
 - redis-sentinel:是redis的哨兵启动脚本

2. 启动redis

我们这里选择开机自启

1.在redis6.2.x的目录下,配置redis.conf

2.# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。 修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0 bind 0.0.0.0

复制代码
# 守护进程,修改为yes后即可后台运行  daemonize yes
# 密码,设置后访问Redis必须输入密码 requirepass 123456

3.启动redis , redis-server redis.conf

4.停止服务:redis-cli -u 123456 shutdown

复制代码
`5.开机自启: vi /etc/systemd/system/redis.service `
 内容是
  [Unit]
    Description=redis-server
    After=network.target

  [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-6.2.6/redis.conf
    PrivateTmp=true

  [Install]
    WantedBy=multi-user.target

6.# 启动 systemctl start redis
使用systemctl status redis 如果是active就是成功了

3. 一些错误

    1. 开放防火墙6379的端口,不然会连不上
    1. VM的CentOs7 的IP 会变,所以要设置为静态IP
    1. 如果是阿里云的服务器,要在安全组里面开放6379端口
    1. 端口可能被占用,可以用netstat -tunlp | grep 6379查看,使用kill -9 pid解决

4.使用redis(String , Hash , List , Set , ZSet , GEO , BitMap )

1.redis 的命令
复制代码
  keys *  查看所有的key
  DEL key  删除key
  EXISTS key  判断key是否存在
  EXPIRE key seconds  设置key的过期时间
  TTL key 查看key的剩余时间
2.String 类型的 (一般是用来简单的类型,如全局的生成唯一Id,或者对象转成Json)
复制代码
 set get 
 mset mget 
 incr 是自增1
 incrby number 是自增number(可以是负数)
 SETNX key value  如果key不存在则设置key的值为value
 SETEX key seconds value  设置key的值为value,并设置过期时间
  • 使用Redis的层级结构来去存储数据,可以使用:来分割,如user:1:info
  • 注意使用String 来存储对象,要使用Json来转换,使用JSONUtil.toJsonStr来转换
3.Hash 类型的 (一般是用来去存储对象,要去修改的数据或者要取出来的数据)
  • 需要注意的是,使用hutool的BeanUtil.toBean方法,可以将hash转成对象,BeanUtil的beanToMap方法可以将对象转成hash
  • Hset Hget Hmset Hmget Hgetall Hkeys Hvals Hsetnx
4.List 类型的 (一般是用来去存储队列,如消息队列(后面会有讨论),栈,同种类型的参数,如店铺的分类类型)
  • lpush rpush lpop rpop lrange(-1,0)
  • 注意Blpop Blpush 是阻塞的,可以设置超时时间,可以用来模拟消息队列
5.SET 类型的 (一般是用来去存储不重复的数据,如用户的喜欢的商品,用户的标签,用户的粉丝)
  • sadd smembers srem smembers
  • 用户的交集,差集,并集--->sinter sidff sunion
6.ZSet 类型的 (一般是用来去存储有序的数据,如排行榜,用户的积分,点赞,使用Feed流时)
  • zadd zrange zrangebyscore zrem zcard zscore用户的交集,差集,并集 与Set类似

5.在java(idea,springboot)使用redis

5.1 类别:jedis ,lettuce,Redission(用于分布式锁)

5.2 jedis (使用较少)

复制代码
-   <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.7.0</version>
-  这里创建就不说了,可以Al生成

5.3 使用StringDataRedis

引入的依赖:spring-boot-starter-data-redis 与 commoms-pool2
配置的文件 : host ,port ,password

就可以使用@Autowire注入StringDataRedis来使用了

但是需要注意的是写入前会把Object序列化为字节形式,我们可以自定义RedisTemplate的序列化方式

用StringRedisTemplate就是String序列化器

相关推荐
2601_957084843 小时前
2026年生产型服装供应链SCM系统丨水洗参数、产能与验收节点架构
数据库·scm·服装供应链系统·服装scm·服装供应链
IvorySQL8 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链
码士集团小青9 小时前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
贝猫说python10 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午11 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜11 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱12 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP13 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
SHENGWEI胜为13 小时前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
Data-Miner13 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析