redis以及redis集群搭建(一)

本文介绍了Redis的基础知识,包括其作为内存数据库的特性、下载与安装过程,特别是在CentOS7上的安装步骤。接着讲解了如何启动和关闭Redis,以及两种启动模式的区别。此外,详细阐述了Redis的常用命令,如set、get、keys、exists等,并展示了不同数据类型如string、hash、list、set和zset的操作方法。最后提到了多数据库的使用和Redis的16个预设数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis

1.1 什么是Redis

在这里插入图片描述

Reids是用C语言开发的一个开源的高性能的键值对(key-value)式数据库(非关系型数据库),redis是将数据放到内存中,
由于内存读取速度快,redis被广泛用于互联网项目中

1.2 Redis下载

http://download.redis.io/releases/redis-3.0.0.tar.gz

1.3 安装Redis(CentOS7的安装redis)

1.3.1 安装前的准备
需要安装C语言的环境

yum install gcc-c++

1.3.2 安装redis

把redis-3.0.0.tar.gz拷贝到/usr/upload下解压源码

tar -zxvf redis-3.0.0.tar.gz

进入解压后的目录进行编译

cd /usr/upload/redis-3.0.0

make

安装到指定目录

make install PREFIX=/usr/local/redis

好了 这玩意儿就安装完成了。接下来去测试一下启动和关闭

1.4启动和关闭redis

1.4.1 前端启动:

1、直接运行bin/redis-server将以前端模式启动。

cd /usr/local/redis/bin
./redis-server

2、这种方法启动是有缺点的,会占用我们的窗口,而且ctrl+c就很容易的就关闭掉了

在这里插入图片描述

关闭的方法上面已经说了:CRTL+C 进行关闭。

1.4.2 后端启动

前端启动的方式占用我们的窗口,还很容易就被关了,我们指定不用那种方式,所以接下来就使用后端启动的方式

  1. 进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
cp /usr/upload/redis-3.0.0/redis.conf  /usr/local/redis/bin
  1. 修改/usr/java/redis/bin下的redis.conf,他默认的是no, 所以需要将daemonize由no改为yes

在这里插入图片描述

  1. 启动就完了
./redis-server redis.conf
  1. 关闭
    到redis/bin目录下执行如下命令(端口号默认情况下是6379
./redis-cli -p 端口号 shutdown

1.5 redis的基本命令

redis-cli连上redis服务后,可以在命令行发送命令:

./redis-cli -h 127.0.0.1 -p 6379
  1. set和**get:**使用set和get可以向redis设置数据、获取数据(我这里使用的是windows的redis,基本命令都是相同的所以如果看出来了也是一样的用法。- -.)

在这里插入图片描述

  1. **keys *:**查看当前库中所有的key值

在这里插入图片描述

  1. exists:判断key值是否存在(如果存在就是>1,不存在则为0)
    在这里插入图片描述

  2. expirettl:expire设置key的过期时间,ttl查看key的有效期
    在这里插入图片描述
    EXPIRE key seconds ---->这个是使用格式 key则是你需要设置过期时间的key ,seconds 设置你需要的时间
    时间到了查询 ttl 的结果为-2,这时再去get key 是get不到的。
    在这里插入图片描述

  3. **clear:**可以使用clear命令对redis-cli终端屏幕清屏。

不必多言 就是清爽就完了。

1.6 多数据库测试

一个redis实例中呢是包含了16个数据库的,就像mysql数据库一样可以有很多个数据库,客户端可以指定连接哪个数据库
redis的16个数据库是有下标的,[0-15],客户端默认连接的是0号库,可以通过select 命令来切换数据库

在这里插入图片描述
这里就可以很明显的看见[1] 。

在这里插入图片描述
这里展示的是在1号库中存储的 key 在0号库中是查询不到的。

在这里插入图片描述

如果选择一个不存在的数据库就会报这玩意儿:(error) ERR invalid DB index
所以他真的一个实例就16个库。。。。

注意:

  1. redis 的数据库名字是不支持改变的
  2. flushall 命令可以清空所有数据库的数据,在哪个库都可以使用
  3. flushdb 命令可以清空当前数据库的数据

1.7 redis的六种数据类型

1.7.1 string

String: key-value

  1. 赋值 set key val
127.0.0.1:6379> set name zhangsan
OK
  1. 取值 get key
127.0.0.1:6379> get name
"zhangsan"
  1. 删除 del key
127.0.0.1:6379> del name
(integer) 1
  1. 自增自减 incr key decr key
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379>

1.7.2 hash

Hash: key-field-value
key: map

  1. 赋值 HASH key field value
127.0.0.1:6379> hset user name zhangsan
(integer) 1
  1. 取值 HGET key field
127.0.0.1:6379> hget user name
"zhangsan"
  1. 删除:HDEL key field
127.0.0.1:6379> hdel user name
(integer) 1

1.7.3 list

List:有顺序可重复,内部是使用双向链表实现的

  1. 赋值
    lpush key val val val…(从左侧添加)
    rpush key val val val…(从右侧添加)
127.0.0.1:6379> lpush list a b c d e
(integer) 5

127.0.0.1:6379> rpush list 1 2 3 4
(integer) 9

  1. 取值 lrange list startIndex endIndex(0-1就是表示列表内的所有value)
127.0.0.1:6379> lrange list 1 4
1) "d"
2) "c"
3) "b"
4) "a"

127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
6) "1"
7) "2"
8) "3"
9) "4"
  1. 删除 lrem key count value
127.0.0.1:6379> lrange list 0 -1
 1) "d"
 2) "d"
 3) "d"
 4) "d"
 5) "e"
 6) "b"
 7) "a"
 8) "1"
 9) "2"
10) "3"
11) "4"

127.0.0.1:6379> lrem list 2 d
(integer) 2

127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "d"
3) "e"
4) "b"
5) "a"
6) "1"
7) "2"
8) "3"
9) "4"

1.7.4 set

Set 不能重复,存取无序

  1. 赋值 sadd key member [member…]
127.0.0.1:6379> sadd set1 1 1 2 2 3 4 4
(integer) 4
  1. 取值 smembers key
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
  1. 删除 srem key member [member…]
127.0.0.1:6379> smembers set1
1) "3"
2) "4"

1.7.5 zset

SortedSet(zset):有顺序,不能重复

  1. 赋值 zadd key [NX|XX] [CH] [INCR] score member [score member…]
127.0.0.1:6379> zadd zset1 1 1 2 2 2 2 3 4
(integer) 3

2.取值 zrange key startIndex endIndex [WITHSCORES]

获取指定分数区间的元素个数:zcount key min max

获取元素个数: zcard key

获取指定分数的元素:zrangebyscore key min max [withscores]

获取元素排名(排名从0开始):zrank key member [withscores]

获取元素排名(分数从大到小进行排):zrevrank key member [withscores]

127.0.0.1:6379> zrange zset1 0 -1
1) "1"
2) "2"
3) "4"

127.0.0.1:6379> zcount zset1 0 5
(integer) 3

127.0.0.1:6379> zcard zset1
(integer) 3

127.0.0.1:6379> zrangebyscore zset1 0 5
1) "1"
2) "2"
3) "4"

127.0.0.1:6379> zrank zset1 2
(integer) 1
127.0.0.1:6379> zrank zset1 1
(integer) 0

127.0.0.1:6379> zrevrank zset1 2
(integer) 1
  1. 删除 zrem key member [member…]
127.0.0.1:6379> zrem zset1 1 2 4
(integer) 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值