目录
1、redis安装
1.1、Linux安装redis
1.2、Windows安装redis
1.3、在Linux上启动redis服务
1.4、Windows启动redis
2、redis常用命令
2.1、常用五种数据类型
2.2、字符串类型常用命令
set key value (同key时,覆盖原始key值)
get key
setex key seconds vlaue (表示在seconds秒后清除key值)
setnx key value (只有key不存在时才会生效)
2.3、哈希类型常用命令
hset key field vlaue (设置key中某字段的值)
hget key field (查看key中某字段的值)
hdel key field (删除key中某字段的值)
hvals key (获取key中所有的值)
hgetall key (获取key中所有的字段和值)
2.4、列表类型常用命令
lpush key value1 value2 …… (将一个或多个值插入头部)
lrange key start stop (获取指定范围内的值)
rpop key (移除并获取列表最后一个元素)
llen key (获取列表长度)
brpop key seconds (移除并获取列表最后一个元素,如果列表没有元素则阻塞,知道超时或发现可弹出元素为止)
2.5、集合类型常用命令
sadd key member1 member2 …… (向集合中添加一个或多个成员)
smembers key (返回 集合中的所有成员)
scard key (获取集合的成员数)
sinter key1 key2 …… (返回给定集合的交集)
sunion key1 key2 …… (返回给定集合的并集)
sdiff key1 key2 …… (返回给定集合的差集)
srem key member1 member2 …… (移除一个或多个成员)
2.6、有序集合类型常用命令
zadd key score1 member1 score2 member2 …… (向集合中添加一个或多个成员,或更新存在成员的分数)
zrange key start stop [withscores] (返回范围内的成员并带分数)
zincrby key increment member (向指定成员分数增加increment)
zrem key member1 member2…… (移除一个或多个成员)
2.7、通用命令
keys * (查看所有key)
exsits key (检查key是否存在)
type key (返回key的类型)
ttl key (返回key的剩余生存时间,以秒为单位)
del key (删除指定key)
Linux版下载地址:Index of /releases/
这里下载4.0.0的!
安装成功
Windows下载地址:Releases · microsoftarchive/redis · GitHub
此时处于霸屏状态,终端关闭则服务停止(ctrl+c也可以停止),可以通过修改配置文件解决!!
成功启动!!
直接双击redis-server即可!
修改密码和相关配置参照上面!!
采用队列的形式(后进先出的特点)并且队列中的元素可重复!
redis set是String类型的无序集合。集合成员是唯一的!
redis有序集合是String类型的有序集合,且不允许有重复的元素,每个元素关联一个double型的分数,分数可以重复,最后按照从大到小的顺序进行排序!
org.springframework.boot
spring-boot-starter-data-redis
spring:
redis:
database: 0 #初始数据库
#连接IP,localhost为127.0.0.1
host: localhost
#端口号
port: 6379
#redis连接密码,没有可不写
# password: root1234
jedis:
pool:
#最大连接数
max-active: 8
#最大阻塞等待时间(负数表示没限制)
max-wait: -1
#最大空闲
max-idle: 8
#最小空闲
min-idle: 0
#连接超时时间
timeout: 10000
@Configuration
public class RedisConfig extends RedisAutoConfiguration {
/**
* redis序列化改写
* @param connectionFactory
* @return
*/
@Bean
public RedisTemplate
使用前需要先注入RedisTemplate
@Resource
private RedisTemplate redisTemplate;
对String数据类型操作
//存值
redisTemplate.opsForValue().set("sname","001");//set
//取值
String name = (String) redisTemplate.opsForValue().get("sname");//get
//设置存取时长
redisTemplate.opsForValue().setIfAbsent("name","002",5, TimeUnit.SECONDS);//setex
对哈希数据类型操作
//获取操作对象
HashOperations hashOperations = redisTemplate.opsForHash();
//存值
hashOperations.put("hash","name","张三");
//取值
String name = hashOperations.get("hash", "name").toString();
//删除某字段
hashOperations.delete("hash","age");//hdel
//获取所有值
List hash = hashOperations.values("hash");//hvals
//获取所有字段
Set hash1 = hashOperations.keys("hash");
对列表数据类型操作
//获取操作对象
ListOperations listOperations = redisTemplate.opsForList();
//存值
listOperations.leftPush("list","1");//单个加入列表
listOperations.leftPushAll("list",2,3,4,5);//多个加入列表
//获取指定范围内的列表值
List list = listOperations.range("list", 0, -1);
for (Object o : list) {
System.out.println(o);
}
System.out.println("==============================");
int size = listOperations.size("list").intValue();//获取列表长度
for (int i = 0; i < size; i++) {
Object pop = listOperations.rightPop("list");//移除并获取最后一个元素
System.out.println(pop);
}
//设置阻塞时长的移除数据
Object timePop = listOperations.rightPop("list", 5, TimeUnit.SECONDS);
对无序集合数据类型操作
SetOperations setOperations = redisTemplate.opsForSet();
//存值
setOperations.add("set",1,2,3,4,5,6);
//取值
Set set = setOperations.members("set");
for (Integer integer : set) {
System.out.println(integer);
}
System.out.println("=======================");
//删除
setOperations.remove("set",5,6);//删除set中的5,6
对有序集合数据类型操作
ZSetOperations zSetOperations = redisTemplate.opsForZSet();
//存值
zSetOperations.add("Zset","a",0.1);
zSetOperations.add("Zset","b",5.1);
zSetOperations.add("Zset","c",1.1);
zSetOperations.add("Zset","d",0.8);
//取值
Set zset = zSetOperations.range("Zset", 0, -1);
for (String s : zset) {
System.out.println(s);
}
//修改分数
zSetOperations.incrementScore("Zset","c",20);//将c的分数值增加20
System.out.println("=============================");
//删除值
zSetOperations.remove("Zset","a");//删除a
通用操作
//查看所有key
Set keys = redisTemplate.keys("*");
for (String key : keys) {
System.out.println(key);
}
//检查key是否存在
Boolean set = redisTemplate.hasKey("set");//存在为true;不存在为false
System.out.println(set);
//返回key的数据类型
DataType dataType = redisTemplate.type("set");
System.out.println(dataType.name());
//删除指定key
redisTemplate.delete("list");
2023-03-06