Linux安装Redis教程(新手必看)
Redis 是一个开源的高性能非关系型数据库,更确切一点来说它是一个基于键值对的缓存系统。本小节介绍在 Linux 上如何安装 Redis。
首先下载、解压、编译Redis:
如果执行 make 命令后有报错,一般是环境问题,可采用如下解决方案。
1) 安装 gcc 套装:
2) 升级 gcc:
3) 设置永久升级:
下面介绍一些常用的命令。Redis 至少支持 string、list、set、zset、hash 五种最基本的数据类型。字符串类型是其他四种类型的基础,这是因为其他四种类型的值也是字符串,只不过是形式不同而已。
set 和 get 命令用于操作 string 类型的 key。添加一个 string 类型的键值对用 set 命令,获取一个 string 类型的键值对的值用 get 命令。
lpush、lpop、rpush、rpop 命令用于操作 list 类型的 key:在 list 的左侧插入和删除元素分别使用 lpush 和 lpop 命令,右侧则使用 rpush 和 rpop 命令。如果不想删除元素,只想查看 list 中有哪些元素,则可以使用 lrange 命令。
set 类型是元素无序不重复的集合。添加元素使用 sadd 命令,删除元素使用 srem 命令,查看集合中的所有元素使用 smembers 命令:
添加元素使用 zadd 命令,zrange 命令会按从小到大的顺序排序,再返回 start 到 end 之间的元素,传入 withscores 会返回分数。
hash 类型适合存储对象。在下面的代码中,user 称为一级 key,username、age、sex 称为二级 key。一级 key 是 Redis 数据的 key,可以用来存放对象名称;二级 key 是 hash 的 key,可以用来存储对象的属性名。
下面再介绍几种通用的命令。查询所有 key 使用 keys * 命令,判断某个 key 是否存在使用 exists 命令,查看某个 key 的数据类型使用 type 命令,删除一个 key 使用 del 命令。
首先下载、解压、编译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/profilegcc 安装成功后,再执行 make 编译,编译成功后,进入解压后的 src 目录,通过如下命令启动 Redis:
$ src/redis-serverRedis 进程启动后,我们可以使用内置的客户端 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) 1zset 是有序不重复集合,每个元素都有一个分数,集合按分数排序。添加元素时如果元素已存在,则覆盖之前的分数。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) 1Redis 提供了大量丰富的命令,上述命令只是其中的一部分,这里就不一一列举其他命令了,有兴趣的读者可以访问 Redis 官网进一步学习。