爱码网专注于资源免费下载

Redis基础

Jking2023-03-31 13:54:051301技术文章Redis基础

一.简介

1.1 redis简介

Redis基础-第1张图片

redis是开源免费的高性能key-value数据库,属于NoSQL数据库。
redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
redis支持数据的备份,即master-slave模式的数据备份。

redis与其他key-value缓存产品有如下三个特点:
(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
(2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
(3)原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。
(4)丰富的特性 – Redis还支持 发布订阅消息, 通知, key 过期等等特性。

1.2 redis安装

下载地址(windows版本)
https://github.com/MicrosoftArchive/redis/releases

完整版本下载地址(Linux):
http://download.redis.io/releases/

Redis Desktop Manager(可视化连接工具)
下载地址:https://www.cr173.com/soft/73300.html

1.3 启动

1.先启动服务端
命令:redis-server.exe redis.windows.conf
2.启动客户端
命令:redis-cli.exe

二.redis数据结构,命令

keys * : 查询所有的键
type key : 获取键对应的value的类型
del key:删除指定的key value

2.1 String

string:字符串类型是非常常见的一种类型,Redis中的字符串类型和很多编程语言里的字符串类型差不多,但相对要灵活些。

set key value	设置key对应的值为string类型的value  
mset key1 value1 [key2 value2...]	一次设置多个key  
get key	获取指定key的value值  
mget key1 [key2 ...]	一次获取多个key的value值  
incr key	对key的值做自增操作,返回新的值  
decr key	对key的值做自减操作,返回新的值  
incrby key integer	对key的value加指定integer  
decrby key integer	对key的value减指定integer  
append key value	给指定key的字符串追加value  
substr key start end	截取key,从start(包含)到end(包含)。注意只是返回截取的value,源value并没改变

Redis基础-第2张图片

2.2 list

list:列表可以看作是个双端队列,可以在列表两端推入和弹出元素。

lpush key value: 将元素加入列表左表
rpush key value:将元素加入列表右边
lrange key start end :范围获取
lpop key: 删除列表最左边的元素,并将元素返回
rpop key: 删除列表最右边的元素,并将元素返回

Redis基础-第3张图片

2.3 hash

hash:Redis中的散列可以让用户将多个键值对存储到一个Redis键中

存储: hset key field value
获取: hget key field
获取所有的field和value: hgetall key
删除: hdel key field

Redis基础-第4张图片

2.4 set

set : 不允许重复元素,集合最显著的特点应该就是其中的元素互不相同。

存储:sadd key value
获取:smembers key:获取set集合中所有元素
删除:srem key value:删除set集合中的某个元素

Redis基础-第5张图片

2.5 sortedset

sortedset:有序集合类型,不允许重复元素,且元素有顺序

存储:zadd key score value
获取:zrange key start end [withscores]
删除:zrem key value

Redis基础-第6张图片

三.redis持久化

3.1 RDB

在默认情况下,Redis将内存数据库快照保存到dump.rdb的二进制文件中。
可以对Redis进行设置,让它在“N秒内数据集至少有N个改动”, 这一条件被满足时,自动保存一次数据集。比如说:让Redis满足“60秒内至少有1000个键被改动”这一个条件时,自动保存一次数据集。

3.2 AOF

开启AOF持久化
appendonly yes

appendfsync always:每次有新命令追加到aof文件时就执行一个持久化,非常慢但是安全
appendfsync everysec:每秒执行一次持久化,足够快(和使用rdb持久化差不多)并且在故障时只会丢失1秒钟的数据
appendfsync no:从不持久化,将数据交给操作系统来处理。redis处理命令速度加快但是不安全。

四.JavaWeb连接

核心代码

@ResponseBody
@RequestMapping("/list")
public Object listUser() {
    if (null != redisUtil.get("user")) {
        return redisUtil.get("user");
    }
    List<User> userList = userService.list();
    String userStr = JSONObject.toJSONString(userList);
    redisUtil.set("user", userStr, 10);
    return userStr;
}

可以看到已经set了:
Redis基础-第7张图片

10s内,再次请求时,是从缓存中获取的数据:
Redis基础-第8张图片


本文链接:https://www.icode1024.com/article/105.html

网友评论