一、安装与配置
1、下载并安装Redis
访问redis.io/download页面,下载最新版本的Redis。下载完毕后,将下载的文件解压到本地文件夹,并打开终端,进入Redis文件夹。
cd /path/to/redis/
2、编译Redis
在终端中执行如下指令进行编译Redis:
make
3、启动Redis服务器
在终端中执行如下指令启动Redis服务器:
./redis-server
4、连接Redis客户端
在终端中执行如下指令连接Redis客户端:
./redis-cli
5、配置Redis密码
在Redis客户端中执行如下命令进行密码配置:
config set requirepass yourpassword
6、验证Redis密码
在Redis客户端中执行如下命令验证密码是否配置成功:
auth yourpassword
7、配置Redis持久化
在Redis配置文件中开启持久化配置,修改redis.conf文件,找到如下配置项:
# bind 127.0.0.1
# requirepass foobared
appendonly no
将appendonly no改为appendonly yes,启用Redis持久化。
二、Redis数据类型
Redis有五种基本数据类型:
- 字符串(String):二进制安全的字符串,最大长度为512M。
- 哈希(Hash):键值对集合,即一个键对应一个值的集合。
- 列表(List):一个序列集合,即一个列表中所有元素都有序排列。
- 集合(Set):无序的字符串集合。
- 有序集合(ZSet):字符串成员与浮点数分值之间的有序映射。
下面是Redis数据类型的代码示例:
# set字符串
set hello world
# hash哈希
hset person name LiMing
hset person age 18
hset person gender male
# list列表
lpush list1 a
lpush list1 b
lpush list1 c
# set集合
sadd set1 a
sadd set1 b
sadd set1 c
# zset有序集合
zadd zset1 1 a
zadd zset1 2 b
zadd zset1 3 c
三、Redis命令
- 键操作
- 键值操作:get/set/del/exists
- 增减操作:incr/decr/incrby/decrby
- 过期操作:expire/ttl/persist
- 哈希操作
- 哈希键值操作:hget/hset/hdel/hexists
- 批量操作:hmget/hmset
- 长度操作:hlen
- 列表操作
- 列表元素操作:lindex/linsert/lpop/lpush/lrange/lrem/lset/ltrim/rpop/rpush
- 长度操作:llen
- 集合操作
- 集合元素操作:sadd/scard/sismember/smembers/srem
- 集合运算:sunion/sdiff/sinter
- 有序集合操作
- 有序集合元素操作:zadd/zcard/zcount/zincrby/zrange/zrevrange/zrank/zrevrank/zrangebyscore/zrem/zremrangebyrank/zrevrangebyscore
下面是Redis常用命令的代码示例:
# 键操作
set hello redis
get hello
del hello
exists hello
# 哈希操作
hset person name LiMing
hset person age 18
hset person gender male
hget person name
hgetall person
hexists person name
# 列表操作
lpush list1 a
lpush list1 b
lpush list1 c
lrange list1 0 2
lpop list1
rpush list1 d
rpush list1 e
lrange list1 0 4
# 集合操作
sadd set1 a
sadd set1 b
sadd set1 c
smembers set1
scard set1
srem set1 b
smembers set1
# 有序集合操作
zadd zset1 1 a
zadd zset1 2 b
zadd zset1 3 c
zrange zset1 0 2
zrangebyscore zset1 2 3
zrank zset1 b
四、Redis应用
Redis可以用于存储各种数据类型,适用于缓存、消息队列、计数器、排行榜等场景。以下是Redis应用的例子:
- 缓存
- 消息队列
- 计数器
- 排行榜
Redis可以作为缓存来做数据的快速读取,比如存储一些热点数据,读取时,先在Redis中查找,如果找到就直接返回,如果没有找到,再从数据库中查询。
Redis的列表数据类型可以当做消息队列来使用,使用rpush命令向队列中添加消息,使用lpop命令从队列中取出消息进行处理。
使用Redis的incr命令可以很方便地实现计数器功能,incr命令每次执行都会将指定键的值加一。
Redis的有序集合数据类型可以用于实现排行榜,将排名作为分值,选手名字作为成员,使用zadd命令向有序集合中添加选手,使用zrevrange命令查询排行榜。