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序列化器

相关推荐
Kyrie_Li15 分钟前
Redis-Sentinel(哨兵模式)
数据库·redis·sentinel
计算机毕设定制辅导-无忧学长1 小时前
TDengine 数据写入优化:协议选择与批量操作(一)
网络·数据库·tdengine
Mr.洛 白1 小时前
OpenEuler/CentOS一键部署OpenGauss数据库教程(脚本+视频)
数据库·opengauss·gaussdb·国产数据库安装·安装脚本
炬火初现1 小时前
redis-cpp-cpp如何使用lua脚本
数据库·redis·lua
hxung1 小时前
Redis 数据类型详解
数据库·redis·缓存
oh,huoyuyan2 小时前
火语言RPA--Sqlite-导入数据表格
数据库·sqlite·rpa
伏游2 小时前
【BUG】生产环境死锁问题定位排查解决全过程
服务器·数据库·spring boot·后端·postgresql·bug
小王不会写code3 小时前
Docker安装、配置Redis
redis·docker
hycccccch3 小时前
Springcache+xxljob实现定时刷新缓存
java·后端·spring·缓存
爱的叹息3 小时前
SpringBoot集成Redis 灵活使用 TypedTuple 和 DefaultTypedTuple 实现 Redis ZSet 的复杂操作
spring boot·redis·bootstrap