据库Redis无存储却有操作从零开始学习(redis没有数)

数据库Redis无存储却有操作:从零开始学习

Redis(Remote Dictionary Server)是一种开源的高性能键值对存储系统,它支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。Redis是通过内存缓存数据来实现高效的数据存储,因此其读写性能非常出色。虽然Redis没有像关系型数据库那样的持久化能力,但是它提供了快照和AOF两种方式来保护数据。

本文将从零开始介绍Redis的安装、配置及使用,帮助读者快速上手Redis的操作。

一、安装Redis

1.1 下载Redis

Redis官方网站:https://redis.io/download

可以从官方网站直接下载Redis安装包,按照系统版本的不同,选择相应的Redis版本进行下载。

1.2 安装Redis

解压下载到的Redis安装包:

tar zxvf redis-x.x.x.tar.gz

进入解压后的Redis目录,执行如下命令编译及安装Redis:

make
make install

二、启动Redis

2.1 启动Redis服务

Redis服务器默认监听在本地的6379端口。可以通过如下命令来启动Redis服务:

redis-server

2.2 启动Redis客户端

Redis客户端可以通过命令行工具redis-cli来启动:

redis-cli

三、Redis基本操作

3.1 存储数据

在Redis中,可以使用以下命令存储数据:

set key value

其中,key是数据的键,value是数据的值。

为了使数据更加安全,可以使用加密并设置有效期的方式存储数据,如下所示:

setex key seconds value

其中,key是数据的键,value是数据的值,seconds是数据的有效期(单位为秒)。

3.2 获取数据

通过以下命令可以获取数据:

get key

其中,key是数据的键。

3.3 删除数据

通过以下命令可以删除数据:

del key

其中,key是数据的键。

3.4 查看数据

通过以下命令可以查看数据:

keys *

此命令将返回所有的数据列表。

四、Redis扩展

Redis不仅可以存储键值对数据,还支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。

4.1 字符串

字符串是Redis最基本的数据结构,示例代码如下:

set name "Redis"
get name

4.2 哈希

哈希是一种键值对的集合,示例代码如下:

hset person name "Tom"
hset person age 18
hgetall person

4.3 列表

列表是一个有序集合,可以在列表头和尾部进行增删操作,示例代码如下:

lpush mylist "Redis"
lpush mylist "MongoDB"
lpush mylist "MySQL"
lrange mylist 0 -1

4.4 集合

集合是一类无序但是唯一的元素集合,示例代码如下:

sadd myset "Redis"
sadd myset "MongoDB"
sadd myset "MySQL"
smembers myset

4.5 有序集合

有序集合是一种有序的集合,可以按照分数进行排序,示例代码如下:

zadd myzset 1 "Redis"
zadd myzset 2 "MongoDB"
zadd myzset 3 "MySQL"
zrange myzset 0 -1 withscores

五、Redis持久化

Redis通过快照和AOF两种方式来进行数据持久化。快照方式会将内存中的数据定期写入磁盘,而AOF方式则会记录每一个写操作,以便在Redis重启后恢复数据。

5.1 快照方式

在快照方式下,Redis会对数据集进行定期存储,以便在Redis重启后可以通过加载快照来恢复数据。定期存储数据集的方式有两种,一种是基于时间间隔的快照方式,一种是基于数据变化量的快照方式。

开启快照持久化需要在配置文件redis.conf中修改如下参数:

# 开启快照,设置快照保存的路径
save 900 1
save 300 10
save 60 10000
dir /var/redis/6379/

5.2 AOF方式

在AOF(Append Only File)方式下,Redis会将每一个写操作记录到内存缓冲区中,并写入AOF文件。当Redis重启时,通过加载AOF文件来恢复数据。需要在配置文件redis.conf中修改如下参数来开启AOF方式:

appendonly yes
appendfilename "appendonly.aof"
dir /var/redis/6379/

数据运维技术 » 据库Redis无存储却有操作从零开始学习(redis没有数)