1.简介:
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消
息中间件
2.官网:
中文:redis中文官方网站
英文:Redis
3.安装:
(1)安装位置:
Linux或服务器上安装(注:此处我是在Linux安装)
(2)下载链接:
中文:redis 6.0.6 下载 -- Redis中国用户组(CRUG)
英文:Redis
(3)解压安装:
(3.1)解压:
命令:tar -zxvf -redis-6.0.6.tar.gz(注:解压到指定目录,此处我创建file目录)
在线下载命令:wget http://download.redis.io/releases/redis-6.0.6.tar.gz
如图:
(3.2)进入目录:
命令:cd redis-6.0.6
如图:
(3.3)编译文件:
命令:make
如图:出现错误
解决方案:
(1)安装GCC依赖:
命令:yum install gcc(注:出现y/d/N,输入y回车即可)
如图:
(2)再次编译:
命令:make MALLOC=libc
如图:使用最新的redis-6.0.6后,安装完GCC再次编译还是报错
原因:自 redis 6.0.0 之后,编译 redis 需要支持 C11 特性,C11 特性在 4.9 中被
引入。Centos7 默认 gcc 版本为 4.8.5,所以需要升级gcc版本。
解决方案:
1.使用老版本的redis
或
2.升级GCC :
逐条执行以下命令:
yum -y install gcc gcc-c++ make tcl
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
GCC升级完成后:
查看GCC命令:gcc -v
如图:
再次编译命令:make MALLOC=libc
如图:未出现错误,则表示编译成功
(4)启动redis:
(1)直接启动:
进入redis-6.0.6/src目录
1.查看命令:ls 或 ll (注:小写)
如图:
2.启动命令:./redis-server
如图:(注:直接启动后,此窗口将无法再输入命令,需再开启一个窗口)
3.查看服务命令:ps -ef|grep redis
如图:
4.停止服务命令:kill -9 服务id (强制停止)
如图:
(2)后台启动:
1.进入redis-6.0.6目录,修改redis.conf文件的daemonize no 为 yes
如图:
2.进入redis-6.0.6/src目录
启动命令:./redis-server ../redis.conf
如图:
(5)测试redis:
redis服务已启动,下一步进入redis客户端测试
进入redis-6.0.06/src目录
命令:./redis-cli 或 ./redis-cli -p 6379(端口号启动)
如图:输入ping,出现PONG,则表示连接redis成功
4.redis常用命令:
详解连接:Redis常用命令_阳光岛主-CSDN博客_redis常用命令
1.获取所有key: keys *
2.选择第一个库: select 0
3.移动key: move key 库ID(注:将当前库key移某个库,目标库有此key,则不能移动)
4.清除库数据: flushdb
5.随机返回key: randomkey(注:从当前数据库中)
6.添加key值: set key value
7.获取key值: get key
6.返指定key类型: type key
7.删除指定key: del key
8.判断是否存在key:exists key
9.10秒过期: expire key 10
10.1000 毫秒: pexpire key 1000
11.删除过期时间: persist key
12.查看过期时间: ttl key(注:-1表示永不过期,-2表示已过期)
5.SpringBoot集成Redis:
(2.1)pom.xml文件:
<!--集成redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>2.1.6.RELEASE</version> </dependency>
(2.2)application.yml文件:
#redis相关配置 redis: host: 127.0.0.1 port: 6379
(2.3)主启动类:
public class RedisMainApplication { public static void main(String[] args) { SpringApplication.run(RedisMainApplication.class,args); } }
(2.4)业务编写:
/** * SpringBoot整合redis测试 */ @SpringBootTest public class SpringBootRedisTest { @Autowired //在redis客户端获取key-value会有特殊字符 private RedisTemplate<Object,Object> redisTemplate01; @Autowired //在redis客户端获取key-value正常显示,中文除外 private RedisTemplate<String,String> redisTemplate02; @Autowired //在redis客户端获取key-value正常显示,中文除外 private StringRedisTemplate stringRedisTemplate; /** * 特殊字符 * RedisTemplate01 */ @Test public void testRedis01(){ ValueOperations<Object, Object> vop1 = redisTemplate01.opsForValue(); //在redis中储存"name"变成"\xac\xed\x00\x05t\x00\x04name" //vop1.set("name","victor"); Object name = vop1.get("name"); System.out.println(name); } /** * 正常显示,中文除外 * RedisTemplate02 */ @Test public void testRedis02(){ ValueOperations<String, String> vop2 = redisTemplate02.opsForValue(); //vop2.set("age","21"); Object age = vop2.get("age"); System.out.println(age); } /** * 正常显示,中文除外 * StringRedisTemplate */ @Test public void testRedis03(){ ValueOperations<String, String> vop3 = stringRedisTemplate.opsForValue(); //vop3.set("address","湖南"); String address = vop3.get("address"); System.out.println(address); } /** * 正常显示,中文除外 * StringRedisTemplate */ @Test public void testRedis04(){ ListOperations<String, String> lop = stringRedisTemplate.opsForList(); lop.leftPush("fruit","apple1"); lop.leftPush("fruit","apple2"); lop.leftPush("fruit","apple3"); } }
6.java连接问题:
解决方案:
如图: