Redis安装和使用(Ubuntu系统)

本节内容包括Redis简介、安装Redis和Redis实例演示等,Redis在Window系统安装教程可参考Redis安装与运行_厦大数据库实验室博客

Redis是一个键值(key-value)存储系统,即键值对非关系型数据库。Redis提供了Python、Ruby、Erlang、PHP客户端,使用很方便。
Redis支持存储的值(value)类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove以及取交集、并集和差集等丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,Redis中的数据都是缓存在内存中的,它会周期性地把更新的数据写入磁盘,或者把修改操作写入追加的记录文件;此外,Redis还实现了主从(master-slave)同步。

安装Redis

首先登录Linux系统(本教程全部统一使用hadoop用户登录),打开浏览器,访问Redis官网(https://redis.io/)下载安装包redis-3.2.7.tar.gz,或者访问本教程官网的“下载专区”,到“软件”目录下把redis-3.2.7.tar.gz文件下载到本地。下载后的redis-3.2.7.tar.gz文件,保存在“/home/hadoop/下载”目录下。然后,打开一个终端,执行以下命令将Redis解压至“/usr/local/”目录下并重命名:

  1. $ cd ~
  2. $ sudo tar -zxvf ./下载/redis-3.2.7.tar.gz -C /usr/local
  3. $ cd /usr/local
  4. $ sudo mv ./redis-3.2.7 ./redis

然后,执行如下命令把redis目录的权限赋予hadoop用户:

  1. $ sudo chown -R hadoop:hadoop ./redis

接下来,进入“/usr/local/redis”目录,输入以下命令编译和安装Redis:

  1. $ sudo make
  2. $ sudo make install

至此,Redis已经安装完成,现在可以执行如下命令开启Redis服务器:

  1. $ cd /usr/local/redis
  2. $ ./src/redis-server

如果有如下图所示的输出,则表示安装成功。

Redis运行成功截图

然后,再新建一个终端,输入如下命令启动Redis客户端:

然后,再新建一个终端,输入如下命令启动Redis客户端:

  1. $ cd /usr/local/redis
  2. $ ./src/redis-cli

如下图所示,客户端连上服务器之后,会显示“127.0.0.1:6379>”的命令提示符信息,表示服务器的IP地址为127.0.0.1,端口为6379。现在可以执行简单的操作,比如,设置键为”hello”,值为”world”,并且取出键为”hello”时对应的值,下图给出了具体的操作效果。

客户端成功连上服务器截图

至此,Redis安装和运行成功,接下来,即可操作Redis数据库。

Redis实例演示

假设有三个表,即Student、Course和SC,三个表的字段(列)和数据如下图所示。
 

Student表


 

Course表

SC表

Redis数据库是以<key,value>的形式存储数据,把三个表的数据存入Redis数据库时,key和value的确定方法如下:
* key=表名:主键值:列名
* value=列值
例如,把每个表的第一行记录保存到Redis数据中,需要执行的命令和执行结果如下图所示。

Redis插入数据

可以执行类似的命令,把三个表所有数据都插入到Redis数据库中。然后,针对这些已经录入的数据,下面将简单演示如何进行增删改查操作。Redis支持5种数据类型,不同数据类型,增删改查可能不同,这里用最简单的数据类型字符串作为演示。

插入数据

向Redis插入一条数据,只需要先设计好key和value,然后用set命令插入数据即可。例如,在Course表中插入一门新的课程“算法”,4学分,操作命令和结果如下图所示。

插入数据

修改数据

Redis并没有修改数据的命令,所以,如果在Redis中修改一条数据,只能采用一种变通的方式,即在使用set命令时,使用同样的key,然后用新的value值来覆盖旧的数据。例如,把刚才新添加的“算法”课程名称修改为“编译原理”,操作命令和结果如下图所示。

修改数据

 

删除数据

Redis有专门删除数据的命令——del命令,命令格式为“del 键”。所以,如果要删除之前新增的课程“编译原理”,只需输入命令“del Course:8:Cname”,如图6-7所示,当输入“del Course:8:Cname”时,返回“1”,说明成功删除一条数据,当再次输入get命令时,输出为空,说明删除成功。

删除数据

查询数据

Redis最简单的查询方式是使用get命令,上面几个操作中都已经使用过get命令,这里不再赘述。

Redis哈希

这里给出一个具体实例。假设要创建一个Redis哈希,名称为“myhash”,里面包含的字段和值的信息如下:
name age course grade
Xiaoming 21 math 98
可以使用HMSET和HMGET命令来创建和查询,如下所示:

127.0.0.1:6379> HMSET myhash name Xiaoming age 21 course math grade 98
OK
127.0.0.1:6379> HMGET myhash name age course grade
1) "Xiaoming"
2) "21"
3) "math"
4) "98"

如果只想设置或者获得一个值,可以使用HSET和HGET。HSET将哈希表key中的字段field的值设为value,HGET获取存储在哈希表key中指定字段field的值。

128.127.0.0.1:6379> HSET myhash grade 88
(integer) 1
127.0.0.1:6379> HGET myhash grade
"88"
127.0.0.1:6379> HGET myhash name
"Xiaoming"

可以使用HDEL命令删除一个或多个哈希表字段,如下所示:

127.0.0.1:6379> HDEL myhash grade
(integer) 1
127.0.0.1:6379> HGET myhash grade
(nil)
127.0.0.1:6379> HMGET myhash name age coure grade
1) "Xiaoming"
2) "21"
3) "math"
4) (nil)
可以使用HEXISTS命令查看哈希表key中,指定的字段是否存在(存在返回1,不存在返回0),如下所示:
127.0.0.1:6379> HEXISTS myhash name
(integer) 1
127.0.0.1:6379> HEXISTS myhash grade
(integer) 0

 

可以使用HGETALL获取在哈希表key中的所有字段和值,如下所示:

127.0.0.1:6379> HGETALL myhash
1) "name"
2) "Xiaoming"
3) "age"
4) "21"
5) "course"
6) "math"

Redis Select命令 

Redis Select命令

Redis Select 命令用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值,即客户端连接到Redis的时候,默认是使用0号数据库。
Redis Select的命令基本语法如下:

127.0.0.1:6379> SELECT index
128

该命令执行完毕后,总是返回OK。
下面给出具体实例:

127.0.0.1:6379> SET db_number 0   # 默认使用 0 号数据库
OK
127.0.0.1:6379> HGET myhash name   #myhash是前面已经创建好的哈希表
"Xiaoming"
127.0.0.1:6379> SELECT 1    # 使用 1 号数据库
OK
127.0.0.1:6379[1]> GET db_number  # 已经切换到 1 号数据库,注意 Redis 现在的命令提示符多了个 [1]
(nil)
127.0.0.1:6379[1]> SET db_number 1
OK
127.0.0.1:6379[1]> GET db_number
"1"
127.0.0.1:6379[1]> HGET myhash name   # 1号数据库中不存在myhash
(nil)
127.0.0.1:6379[1]> SELECT 3    # 再切换到 3 号数据库
OK
127.0.0.1:6379[3]> GET db_number   # 提示符从 [1] 改变成了 [3]
(nil)
127.0.0.1:6379[3]> SET db_number 3
OK
127.0.0.1:6379[3]> GET db_number
"3"
127.0.0.1:6379[3]> SELECT 0   # 再切换到 0 号数据库
OK
127.0.0.1:6379> GET db_number
"0"
127.0.0.1:6379> HGET myhash name   #myhash是前面已经创建好的哈希表
"Xiaoming"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值