ls /usr/local/bin/
可以看到这里多了很多redis相关的命令。
2.2 启动redis
(1)前台启动(不推荐)
redis --server
这种方式会占用整个命令行终端,并且如果终端挂了,redis服务也会挂掉。
(2)后台启动
redis --server &
这种方式按回车,redis就会退出控制台,在后台运行。可以使用如下命令查看redis是否在启动中。
ps -ef|grep redis
(3)启动redis服务时,指定配置文件
在redis的解压目录下,很容易找到配置文件redis.conf
。配置文件可配置redis的端口号等,我们可以在启动redis指定配置文件,让redis使用配置文件的配置而不是默认配置。
redis --server redis.conf &
2.3 关闭redis
(1)通过kill
命令杀进程(不推荐)
ps -ef|grep redis
下图中显示的第一行中,103201就是redis进程的pid了(1511是其父进程的pid)。
kill -9 103201
这种方式不推荐,因为容易丢失数据,可能redis中的数据还没有持久化,就被kill了。
(2)通过redis-cli命令关闭
redis-cli shutdown
这里其实就是使用了redis的客户端向服务端发送了关闭的请求。
2.4 redis的客户端使用
服务器一般部署在远程,程序员在实际中都是同客户端给服务端发送请求使用redis。
☕ 注 意:
值的注意的是,redis与mysql不同,客户端与服务端不通过账号密码来连接,只需要ip与port即可,它追求的是效率而不是安全,因为使用redis存储的数据一般也都是一些不需要考虑信息安全问题的数据。
redis-cli
是redis自带的客户端。启动服务端后,使用命令redis-cli
即可使用,默认连接本机6379端口的redis服务器。
如果想要指定端口号,可以使用如下命令。
redis-cli -p 6380
如果想要连接指定主机的服务器,可以使用如下命令。
redis-cli -h 10.10.11.218 -p 6380
退出客户端。在客户端执行命令exit
和quit
即可。
3 redis的基本知识
3.1 测试redis服务器性能
如果您是项目经理或者技术经理,需要进行选型,可以在redis服务器启动的前提下使用如下命令。
redis-benchmark
其结果如下。它会自己发送模拟请求,返回其处理请求的时间及其它细节情况。可以看到,它在0.7s内处理了十万条请求,其性能还是特别不错的。
3.2 查看redis服务器是否正常连接
由于我们都是远程对redis服务器发送请求,在执行请求前,可以先使用ping
命令确定是否与服务器保持正常的连接。 如果正常则会返回pong
,否则返回空。
3.3 查看redis的统计信息
作为项目经理或者技术经理,可能需要查看redis的统计信息。执行命令info
即可。下面截取了一部分结果,实际上它返回的信息很广,涉及集群,内存,cpu等等。
我们可以指定需要查看的信息。
127.0.0.1:6379> info CPU
# CPU
used_cpu_sys:21.710256
used_cpu_user:25.014116
used_cpu_sys_children:0.000000
used_cpu_user_children:0.006322
3.4 redis的数据库实例
redis默认使用16个数据库实例,采用编号0-15命名,作用与myql的数据库实例相同。不过,mysql可以自己创建数据库实例,redis只能由redis服务来创建数据库实例(启动时就默认创建16个,也可以通过配置文件指定需要redis自动创建的数据库实例个数),而开发人员不能够创建或更改数据库实例。
💡 Tips:
redis数据库实例本身需要占用的存储空间是很小的,因此即使没有使用16个数据库实例,其实也不需要太担心存储空间的问题
默认情况下,redis客户端连接的是编号为0的数据库实例。可以使用select [index]
命令切换数据库实例。
<pre>127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get k1
(nil)
</pre>127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> get k1
"v1"
3.5 查看当前数据库的数据条数
使用dbsize
,可以查看当前数据库的key的数目,即数据条数,下面看看0号数据库的数据条数
127.0.0.1:6379> dbsize
(integer) 5
大家可能会奇怪,我们不是才插入1条数据吗?其实,redis的0号数据库实例和oracle等数据库会创建默认的数据表一样,会默认创建几条数据。
3.6 查看当前数据库的所有key
keys *
可以查看当前数据库的所有key
127.0.0.1:6379> keys *
1) "counter:\_\_rand\_int\_\_"
2) "k1"
3) "key:\_\_rand\_int\_\_"
4) "myset:\_\_rand\_int\_\_"
5) "mylist"
3.7 清空当前数据库实例
flushdb
可以清空当前数据库实例的数据
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
3.8 清空所有数据库实例
flushall
可以清空所有数据库实例的数据,这个命令需要慎用。
127.0.0.1:6379> flushall
OK
3.9 查看redis的配置信息
使用如下命令查看所有配置信息
config get *
你当然也可以查看指定的信息。
127.0.0.1:6379> config get port
1) "port"
2) "6379"
4.redis的五种数据结构
程序是用来处理数据的,数据库则是用来存储数据的,redis为了方便数据的存储,设计了五种数据结构,可以很方便的将程序处理过的多种类型的数据直接对应到这五种数据结构,不同的特点的数据,可以存储到redis不同类型的数据结构中,存取十分方便。
redis的五种数据结构中,前4种与java的数据结构都可以一一对应,第五种没有对应的类型,分别是:
- string对应字符串、数值类型与布尔类型(都可以用一个值表示)
- list对应有序集合list、数组等,按照数据插入顺序存储数据
- set对应无序无重复集合
- hash对应实体类对象
- zset(sorted set),它其实也是有序集合,不过它的顺序不是元素存放的先后顺序,而是排序,比如存放了中国所有的城市city,我们可以根据排序指标人数进行数据的排序。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
-dJEX6CtU-1714162337783)]
[外链图片转存中…(img-SBUebpaH-1714162337784)]
[外链图片转存中…(img-5UWkkzuE-1714162337784)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新