一、Redis概述
1.Redis定义:
Redis,全称为(Remote Dictionary Server),是一个基于内存的键值对存储系统,常用作缓存服务。
2.Redis特点:
①高性能:Redis主要将数据存储在内存中,因此读写速度非常快,适合对速度有较高要求的场景。
②支持多种数据结构:Redis中键值对的值(Value)支持多种数据结构,如字符串、哈希表、列表、集合等,这使得它可以应用于多种不同的场景。
③持久化:Redis可以通过定期快照或者实时记录写操作日志的方式将内存中的数据持久化到硬盘,确保数据在重启后不会丢失。
④灵活的数据过期策略:可以为每个键设置过期时间,一旦过期,Redis会自动删除。
3.Redis应用场景
最常见的应用场景就是用作于缓存,可以提升访问的速度,降低数据库的压力。比如说储存用户的登录信息,就可以存储到redis中,这样就可以降低浏览器本地存储的压力,提升访问速度。

二、Redis客户端
启动客户端:
redis-cli -h 127.0.0.1 -p 6376
- -h <hostname> 用于声明Redis服务器的主机名或者ip地址,默认值为127.0.0.1。
- -p <port> 用于声明Redis服务器监听的端口号,默认值为6379。
测试连接状态:
若连接成功则返回pong。
[root@server01 ~]# redis-cli ping
PONG
三、Redis常用数据类型和命令
1.通用命令
1.1 查看所有键
语法:keys pattern
说明:pattern用于匹配key,其中*表示任意个任意字符,?表示一个任意字符。
127.0.0.1:6379> keys *
1) "s4"
2) "s3"
3) "key4"
1.2 查看键的总数
语法:dbsize
1.3 判断键是否存在
如果key存在返回1,不存在则返回0。
语法:exists key
1.4 删除键
可以同时删除多个键,返回值为删除键的个数,若删除一个不存在的键,则返回0。
语法:del key [key ...]
1.5 查询键的剩余过期时间
ttl的含义为time to live,用于查询一个定时键的剩余时间,返回值以秒为单位。若查询的键为设置过期时间,则返回-1,若查询的键不存在,则返回-2.
语法:ttl key
1.6 数据库管理命令
切换数据库:Redis默认有编号为0~15的16个逻辑数据库,每个数据库之间的数据是相互独立的,所有连接默认使用的都是0号数据库。
语法:select index
2. 常见的类型
2.1 string类型
概述:Redis中的string类型保存的是字节序列(Sequence of bytes),因此任意类型的数据,只要经过序列化之后都可以保存到Redis的string类型中,包括文本、数字甚至是一个对象。
常用命令
set
set命令用于添加string类型的键值对。
语法:set key value [NX | XX] [EX seconds|PX milliseconds]
各选项含义如下
NX:仅在key不存在时set
XX:仅在key存在时set
EX seconds:设置过期时间,单位为秒
PX milliseconds:设置过期时间,单位为毫秒
get
get命令用于获取某个string类型的键对应的值。
语法:GET key
incr
incr命令用于对数值做自增操作。
语法:INCR key
若key对应的value是整数,则返回自增后的结果,若不是整数则报错,若key不存在则创建并返回1。
decr
decr命令用于对数值做自减操作。
语法:DECR key
若key对应的value是整数,则返回自减后的结果,若不是整数则报错,若key不存在则创建并返回-1。
应用场景:
string类型常用于缓存、计数器等场景。
2.2 list类型
概述:list类型可用于存储多个string类型的元素,并且所有元素按照被添加的顺序存储。
常用命令
添加元素:

①lpush
该命令用于向list左侧添加元素。
语法:lpush key element [element ...]
示例:lpush li a b c
②rpush
该命令用于向list右侧添加元素。
语法:rpush key element [element ...]
③linsert
该命令用于向list指定位置添加元素。
语法:linsert key before|after pivot element
示例:linsert l1 after b new
查询元素:
①lindex
index从左到右为正值,依次是0,1,2...,从右到左为负值依次是-1,-2,-3...
语法:lindex key index
②lrange
语法:lrange key start stop
获取全部元素示例:lrange l1 0 -1
删除元素

① lpop
该命令用于移除并返回list左侧元素,count参数表示移除元素的个数。
语法:lpop key [count]
② rpop
该命令用于移除并返回list右侧的元素。
语法:rpop key [count]
③ lrem
该命令用于移除list中的指定元素。
语法:lrem key count element
说明:count参数表示要移除element元素的个数(list中可以存在多个相同的元素),count的用法如下
-
若count>0,则从左到右删除最多count个element元素
-
若count<0,则从右到左删除最多count(的绝对值)个element元素
-
若count=0,则删除所有的element元素
修改元素
lset
命令可用于修改指定索引位置的元素。
语法:lset key index element
其他
llen
用于查看list长度。
语法:llen key
应用场景
社交应用中,可使用list缓存每个用户发布的最新的N条记录。
list可用作异步消息队列。
955

被折叠的 条评论
为什么被折叠?



