目录
一、redis数据存储安装
redis数据存储是一种开源的数据存储技术,它提供了一个高性能的键值对存储系统,支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。Redis
具有内存高速存储和持久化存储的能力,可以用于缓存、会话管理、发布
/
订阅、实时分析等多个领域。Redis
的优点包括高性能、高并发、支持事务和
Lua
脚本、多种数据结构、易于扩展和部署等。
同时,
Redis
也有一定的缺点,如可用内存容量受限、持久性存储的磁盘
I/O
等待问题等。
[root@localhost ~] yum -y install epel-release
[root@localhost ~] yum -y install redis
二、登录
[root@localhost ~] vim /etc/redis.conf #进入配置文件
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared #在文件中找到此行
requirepass 123.com #取消注释,在后面加上你的登录密码
[root@localhost ~] systemctl start redis
[root@localhost ~] systemctl restart redis #重启服务
在终端中输入 redis-cli-h<hostname>-p<port>-a<password>
hostname是redis服务器的主机名或IP地址,port是redis服务i其监听的端口号,passwrod是redis服务器认证的密码。
如果服务器在本地,可以使用默认值:
redis-cli
如果
Redis
服务器没有设置密码,则无需使用
`-a`
选项。如果服务器设置了密码,则必须使用
`-a`
选项并提供密码。
登录成功后,可以使用
Redis
命令进行交互。
[root@localhost ~] redis-cli #我是本机默认登录
127.0.0.1:6379> #成功登录
127.0.0.1:6379> AUTH 123.com #验证身份
OK
127.0.0.1:6379>
三、操作示例
1.SET和GET,SET命令用于将指定的Key设定为对应的Value值。GET命令用于获取指定Key的Value值。
127.0.0.1:6379> set name 'skl'
OK
127.0.0.1:6379> get name
"skl"
2.EXISTS
和DEL,EXISTS
命令用于判断指定的
Key
是否存在。
DEL
命令用于删除指定的
Key
及其对应的
Value
值。
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> EXISTS name
(integer) 0
127.0.0.1:6379>
3.KEYS命令用于查找符合指定pattern的所有Key。
127.0.0.1:6379> set name2 'root'
OK
127.0.0.1:6379> set name3 'lu'
OK
127.0.0.1:6379> KEYS name*
1) "name"
2) "name3"
3) "name2"
4.INCR
和DECR,INCR
命令用于对指定的
Key
做自增操作。
DECR
命令用于对指定的
Key
做自减操作。
127.0.0.1:6379> SET skl 10 #创建
OK
127.0.0.1:6379> INCR skl #递增
(integer) 11
127.0.0.1:6379> DECR skl #递减
(integer) 10
127.0.0.1:6379>
5.EXPIRE和TTL ,EXPIRE命令用于设置指定Key的过期时间,TTL命令用于获取指定Key的剩余过期时间。
127.0.0.1:6379> EXPIRE skl 60 #设置60S过期
(integer) 1
127.0.0.1:6379> TTL skl #查看time过期时间
(integer) 56
127.0.0.1:6379>
6.HASH,HASH
命令用于在指定
Key
中设置多个字段的值,也可用于获取指定
Key
中所有字段及其值。
127.0.0.1:6379> HSET user1 name"list" email"list@example.com"
(integer) 1
127.0.0.1:6379> HSET user2 name"Sss" email"sss@example.com"
(integer) 1
127.0.0.1:6379> HGETALL user2 #显示user2
1) "nameSss"
2) "emailsss@example.com"
127.0.0.1:6379>
7.LIST,LIST
命令用于在指定
Key
的列表中插入、获取、删除值。
127.0.0.1:6379> LPUSH skl "task 1" #将值为“test 1”的元素插入到名为“skl”的列表左侧,并将其设置为列表的第一个元素
(integer) 1
127.0.0.1:6379> LPUSH skl "task 2"
(integer) 2
127.0.0.1:6379> LPUSH skl "task 3"
(integer) 3
127.0.0.1:6379> lrange skl 0 -1 #获取“skl”列表中所有元素,从第一个元素到最后一个
1) "task 3"
2) "task 2"
3) "task 1"
127.0.0.1:6379> lpop skl #从“skl”列表左侧弹出第一个元素,并返回该元素的值
"task 3"
127.0.0.1:6379>
四、redis持久化
RDB
:将
Redis
在内存中的数据定期
dump
到硬盘上的一个快照文件,用于进行备份和恢复。其优点是安全,可靠且性能高,缺点是在最近一次RDB
文件被
dump
之后的数据丢失风险较高。
[root@localhost ~] vim /etc/redis.conf
save 900 1 #表示如果在900秒内有至少1个键值对被修改,Redis就会自动执行一次RDB持久化操作,以便将内存中的数据快照写入到磁盘中。其他两个参数表示进一步的持久化周期设置。
save 300 10
save 60 10000
dbfilename dump.rdb #持久化文件的名字
dir /var/lib/redis #持久化文件被保存的目录。
[root@localhost ~] systemctl restart redis
除了在配置文件中手动设置外,可以使用CONFIGSET
命令对
Redis
进行实时配置。使用命令
SET CONFIG AUTO-AOF-SYNC YES可以开启自动
AOF
同步,使用
SAVE
命令可以立即强制执行一次
RDB
持久化操作。