首页 > 编程笔记 > Java笔记 阅读:3

Linux安装Redis教程(新手必看)

Redis 是一个开源的高性能非关系型数据库,更确切一点来说它是一个基于键值对的缓存系统。本小节介绍在 Linux 上如何安装 Redis。

首先下载、解压、编译Redis:
$ wget http://download.redis.io/releases/redis-6.0.6.tar.gz
$ tar xzf redis-6.0.6.tar.gz
$ cd redis-6.0.6
$ make

如果执行 make 命令后有报错,一般是环境问题,可采用如下解决方案。
1) 安装 gcc 套装:
yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make

2) 升级 gcc:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

3) 设置永久升级:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
gcc 安装成功后,再执行 make 编译,编译成功后,进入解压后的 src 目录,通过如下命令启动 Redis:
$ src/redis-server
Redis 进程启动后,我们可以使用内置的客户端 redis-cli 与 Redis 进行交互。

下面介绍一些常用的命令。Redis 至少支持 string、list、set、zset、hash 五种最基本的数据类型。字符串类型是其他四种类型的基础,这是因为其他四种类型的值也是字符串,只不过是形式不同而已。

set 和 get 命令用于操作 string 类型的 key。添加一个 string 类型的键值对用 set 命令,获取一个 string 类型的键值对的值用 get 命令。
127.0.0.1:6379> set name redis
OK
127.0.0.1:6379> get name
"redis"
list 类型按元素的插入顺序存储,并且支持在 list 的左右两端插入/删除元素,元素可重复。list 类型可以实现简单消息队列的功能。

lpush、lpop、rpush、rpop 命令用于操作 list 类型的 key:在 list 的左侧插入和删除元素分别使用 lpush 和 lpop 命令,右侧则使用 rpush 和 rpop 命令。如果不想删除元素,只想查看 list 中有哪些元素,则可以使用 lrange 命令。
127.0.0.1:6379> lpush cacheList redis memecache
(integer) 2
127.0.0.1:6379> rpush cacheList memecache ehcache
(integer) 4
127.0.0.1:6379> lrange cacheList 0 3
1) "memecache"
2) "redis"
3) "memecache"
4) "ehcache"
127.0.0.1:6379> lpop cacheList
"memecache"
127.0.0.1:6379> rpop cacheList
"ehcache"

set 类型是元素无序不重复的集合。添加元素使用 sadd 命令,删除元素使用 srem 命令,查看集合中的所有元素使用 smembers 命令:
127.0.0.1:6379> sadd cacheSet redis redis ehcache memecache
(integer) 2
127.0.0.1:6379> smembers cacheSet
1) "ehcache"
2) "redis"
3) "memecache"
127.0.0.1:6379> srem cacheSet memecache
(integer) 1
zset 是有序不重复集合,每个元素都有一个分数,集合按分数排序。添加元素时如果元素已存在,则覆盖之前的分数。zset 类型非常适合用于实现一些网站的排行榜功能。

添加元素使用 zadd 命令,zrange 命令会按从小到大的顺序排序,再返回 start 到 end 之间的元素,传入 withscores 会返回分数。
127.0.0.1:6379> zadd cacheZSet 80 ehcache 90 redis 70 memecache 85 mysql
(integer) 4
127.0.0.1:6379> zrange cacheZSet 0 3 withscores
1) "memecache"
2) "70"
3) "ehcache"
4) "80"
5) "mysql"
6) "85"
7) "redis"
8) "90"

hash 类型适合存储对象。在下面的代码中,user 称为一级 key,username、age、sex 称为二级 key。一级 key 是 Redis 数据的 key,可以用来存放对象名称;二级 key 是 hash 的 key,可以用来存储对象的属性名。
127.0.0.1:6379> hset user username zhangsan age 20 sex nan
(integer) 3
127.0.0.1:6379> hget user username
"zhangsan"
127.0.0.1:6379> hget user age
"20"
127.0.0.1:6379> hget user sex
"nan"

下面再介绍几种通用的命令。查询所有 key 使用 keys * 命令,判断某个 key 是否存在使用 exists 命令,查看某个 key 的数据类型使用 type 命令,删除一个 key 使用 del 命令。
127.0.0.1:6379> keys *
1) "cacheZSet"
2) "cacheSet"
3) "cacheList"
4) "user"
5) "name"
127.0.0.1:6379> exists user
(integer) 1
127.0.0.1:6379> type cacheZSet
zset
127.0.0.1:6379> del name
(integer) 1
Redis 提供了大量丰富的命令,上述命令只是其中的一部分,这里就不一一列举其他命令了,有兴趣的读者可以访问 Redis 官网进一步学习。

相关文章