-
下载:官网:https://redis.io/download/,选择稳定版下载。
-
上传至linux
-
解压Redis:
tar -zxvf redis-6.2.7.tar.gz
,得到:
-
安装gcc编译环境,如果已经安装过了,则跳过:
yum install gcc-c++
-
进入到
redis-6.2.7
目录,进行安装:make && make install
,执行完毕后安装成功 -
.配置redis,在utils下,拷贝
redis_init_script
到/etc/init.d
目录,目的要把redis作为开机自启动
-
创建
/usr/local/redis
,用于存放配置文件
-
拷贝redis配置文件,拷贝到
/usr/local/redis
下
-
修改
redis.conf
这个核心配置文件-
修改 daemonize no->daemonize yes,目的是为了让redis启动在linux后台运行
-
修改redis的工作目录,建议修改为
/usr/local/redis/working
,名称随意
-
修改如下内容,绑定IP改为
0.0.0.0
,代表可以让远程连接,不受ip限制
-
最关键的是密码,默认是没有的,一定要设置
-
-
修改
redis_init_script
文件中的redis核心配置文件为如下∶并修改redis的核心配置文件名称为:6379.conf
-
为redis启动脚本添加执行权限,随后运行启动redis;
-
检查redis进程,至此redis安装并且启动成功
-
设置redis开机自启动,修改
redis_init_script
,添加如下内容
#chkconfig:22345 10 90
#description: Start and Stop redis
随后执行:chkconfig redis_init_script on
重启服务器(虚拟机)后,再看进程。
- 引入Redis依赖
<!--引入 redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置redis
spring:
redis:
database: 1
host: 192.168.32.10
port: 6379
password: reminis
- controller测试
@Autowired
private RedisTemplate redisTemplate;
@GetMapping("/test")
public vid testRedis(String key, String value) {
redisTemplate.opsForValue().set(key, value);
(String)redisTemplate.opsForValue().get(key);
redisTemplate.delete(key);
}
Redis的命令客户端
redis-cli -a password shutdown
:关闭redis./redis_init_script stop
:关闭reidsredis-cli
:进入redis客户端auth password
:输入密码set key value
:设置缓存get key
:获得缓存del key
:删除缓存redis-cli -a password ping
:查看是否存活
string:最简单的字符串类型键值对缓存,也是最基本的
- key相关
keys*
:查看所有的key(不建议在生产环境中使用,有性能影响)type key
:查看key的类型
- string类型
get/set/del
:查询/设置/删除set key vaue
:设置已存在key,会覆盖setnx key value
:设置已存在的key,不会覆盖set key value ex time
:设置带过期时间的数据expire key
:设置过期时间ttl
:查看过期时间,-1永不过期,-2已过期append key
:合并字符串长度strlen key
:字符串长度incr key
:累加1decr key
:累减1incrby key num
:累加给定数值decrby key num
:累减给定数值getrange key start end
:截取数据,end=-1代表到最后setrange key start newdata
:从start位置开始替换数据mset
:批量设值mget
: 批量取值msetnx
:批量设值,如果存在则不设值
- 其它
select index
:切换数据库,总共默认16个flushdb
:删除当前db下边的所有数据flushall
:删除所有db中的数据
hash:类似map,存储结构化数据,比如存储一个对象(不能嵌套对象)
使用
-
hset key property value
。如 hset user name reminis(创建一个user对象,这个对象中包含user属性,name的值为reminis),hget user name
:获得用户对象中name的值 -
hmset
:设置对象中的多个键值对。如 hmset user age 18 gender man phone 19209807669,hmsetnx
:设置对象中的多个键值对,存在则不添加 -
hmget
:获得对象中的多个属性。如 hmget user age gender phone -
hgetall user
:获得整个对象的内容
-
hincrby user age 2
:累加属性 -
hincrbyfloat user age 2.2
: 累加属性 -
hlen user
:查看user对象有多少个属性 -
hexists user age
:判断属性是否存在 -
hkeys user
:获得对象的所有属性 -
hvals user
:获得所有值 -
hdel user name
:删除对象的某个属性
list:列表,[a,b,c,d,e,...]
使用
lpush userList 1 2 3 4 5
:构建一个list,从左边开始存入数据rpush userList 1 2 3 4 5
:构建一个List,从右边开始存入数据lrange userList start end
:获得数据lpop userList
:从左侧开始拿出一个数据rpop userList
:从右侧开始拿出一个数据llen userList
:list的长度lindex userList index
:获取list下标的值lset userList index value
:把list的某个下标的值替换linsert userList before/after value
:插入一个新的值lrem userList num value
:删除几个相同的数据ltrim userList start end
:截取值,替换原来的list
set:相当于去重的list
zsetsorted set:排序的set,可以去重可以排序,比如可以根据用户积分做排名,积分作为set的一个数值,根据数值可以做排序。zset中的每一个member都带有一个分数
使用
zadd zset 10 value1 20 value2 30 value3
:设置member和对应的分数zrange zset 0 -1
:查看所有zset中的内容zrange zset 0 -1 withscores
:带有分数zrank zset value
:获得对应的下标zscore zset value
:获得对应的分数zcard zset
:统计个数zcount zset 分数1 分数2
:统计个数zrangebyscore zset 分数1 分数2
:查询分数之间的member(包含分数1和分数2)zrangebyscore zset (分数1 (分数2
:查询分数之间的member(不包含分数1和分数2)zrangebyscore zset 分数1 分数2 limit start end
:查询分数之间的member(包含分数1和分数2),获得的结果集再次根据下标区间做查询zrem zset value
:删除member