一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
Keys:返回满足给定pattern的所有key
redis 127.0.0.1:6379> keys *
1) "myzset2"
2) "myzset3"
3) "mylist"
4) "myset2"
5) "myset3"
6) "myset4"
7) "list1"
redis 127.0.0.1:6379> keys my*
1) "myzset2"
2) "myzset3"
3) "mylist"
4) "myset2"
5) "myset3"
6) "myset4"
exists:确认一个key是否存在。
如下从结果来看,name键不存在,age键存在。
redis 127.0.0.1:6379> exists name
(integer) 0
redis 127.0.0.1:6379> exists age
(integer) 1
del:删除一个key
redis 127.0.0.1:6379> del age
(integer) 1
redis 127.0.0.1:6379> exists age
(integer) 0
expire:设置一个key的过期时间。
在下例中,我们设置addr这个key的过期时间是10秒,然后我们不断的用ttl来获取这个key的有效时长,直至为-1说明此值已过期。
redis 127.0.0.1:6379> expire addr 10
(integer) 1
redis 127.0.0.1:6379> ttl addr
(integer) 8
redis 127.0.0.1:6379> ttl addr
(integer) 1
redis 127.0.0.1:6379> ttl addr
(integer) -1 //代表addr已经过期
redis 127.0.0.1:6379> get addr
(nil)
redis 127.0.0.1:6379> exists addr
(integer) 0
move:将当前数据库中的key转移到其它数据库中。
数据库是从0到15,select 0表示选择0号数据库。
redis 127.0.0.1:6379> select 0
OK
redis 127.0.0.1:6379> set age 30
OK
redis 127.0.0.1:6379> get age
"30"
redis 127.0.0.1:6379> move age 1 //将age从0数据库移到1数据库
(integer) 1
redis 127.0.0.1:6379> get age
(nil)
redis 127.0.0.1:6379[1]> select 1
OK
redis 127.0.0.1:6379[1]> get age
"30"
redis 127.0.0.1:6379[1]> select 0
OK
redis 127.0.0.1:6379> exists age
(integer) 0
persist:移除给定key的过期时间
redis 127.0.0.1:6379> expire age 300
(integer) 1
redis 127.0.0.1:6379> ttl age
(integer) 294
redis 127.0.0.1:6379> persist age
(integer) 1
redis 127.0.0.1:6379> ttl age
(integer) -1 //-1表示取消了过期时间
randomkey:随机返回key空间的一个key。
redis 127.0.0.1:6379> randomkey
"mylist7"
redis 127.0.0.1:6379> randomkey
"mylist5"
rename:重命名key。
redis 127.0.0.1:6379> keys *
1) "age"
redis 127.0.0.1:6379> rename age age_new
OK
redis 127.0.0.1:6379> keys *
1) "age_new"
type:返回值的类型。
redis 127.0.0.1:6379> type addr
string
redis 127.0.0.1:6379> type myzset2
zset
redis 127.0.0.1:6379> type mylist
list
2.服务器相关命令
ping:测试连接是否存活。
redis 127.0.0.1:6379> ping
PONG
//执行下面命令之前,停止redis服务器
redis 127.0.0.1:6379> ping
Could not connect to Redis at 127.0.0.1:6379:Connection refused
//执行下面命令之前,启动redis服务器
redis 127.0.0.1:6379> ping
PONG
第一个ping时,说明此连接正常;第二个ping之前,我们将redis服务器停止,那么ping是失败的;第三个ping之前,我们将redis服务器启动,那么ping是成功的。
echo:在命令行打印一些内容。
redis 127.0.0.1:6379> echo lamp
"lamp"
select:选择数据库。Redis数据库编号从0-15,我们可以选择任意一个数据库来进行数据的存取。
redis 127.0.0.1:6379> select 1
OK
redis 127.0.0.1:6379[1]> select 16
(error) ERR invalid DB index
redis 127.0.0.1:6379[16]>
当先择16时,报错,说明没有编号为16的这个数据库。
quit:退出连接。
redis 127.0.0.1:6379> quit
[root@localhost redis-2.2.12]#
dbsize:返回当前数据库中key的数目。
redis 127.0.0.1:6379> dbsize
(integer) 18
结果说明此库中有18个key。
info:获取服务器的信息和统计。
redis 127.0.0.1:6379> info
redis_version:2.2.12
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:32
multiplexing_api:epoll
process_id:28480
uptime_in_seconds:2515
uptime_in_days:0
.
.
.
redis 127.0.0.1:6379>
config get:实时传储收到的请求。
redis 127.0.0.1:6379> config get dir
1) "dir"
2) "/root/4setup/redis-2.2.12"
redis 127.0.0.1:6379>
本例中我们获取了dir这个参数配置的值,如果想获取全部参数据的配置值也很简单,只需要执行"config get *"即可将全部的值都显示出来。
flushdb:删除当前选择数据库中的所有key。
redis 127.0.0.1:6379> dbsize
(integer) 18
redis 127.0.0.1:6379> flushdb
OK
redis 127.0.0.1:6379> dbsize
(integer) 0
本例中我们将0号数据库中的key都清除了。
flushall:删除所有数据库中的所有key。
redis 127.0.0.1:6379[1]> dbsize
(integer) 1
redis 127.0.0.1:6379> select 0
OK
redis 127.0.0.1:6379> flushall
OK
redis 127.0.0.1:6379> select 1
OK
redis 127.0.0.1:6379[1]> dbsize
(integer) 0
redis 127.0.0.1:6379[1]> keys *
(empty list or set)
redis 127.0.0.1:6379[1]> select 0
OK
redis 127.0.0.1:6379> keys *
(empty list or set)
在本例中我们先查看了一个1号数据库中有一个key,然后切换到0号库执行flushall命令,结果1号库中的key也被清除了,说是此命令工作正常。
二.Redis高级实用特性
1.安全性
设置客户端连接后进行任何其他指定前需要使用的密码。
警告:因为redis速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行150K次的密码尝试,这意味着你需要指定非常强大的密码来防止暴力破解。
[root@localhost ~]# vi /usr/local/redis/etc/redis.conf
修改配置文件中的如下配置项
#requirepass foobared
requirepass beijing
我们设置了连接的口令是beijing。
重启服务
[root@localhost ~]# pkill redis-server
[root@localhost ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
[root@localhost ~]# /usr/local/redis/bin/redis-cli
redis 127.0.0.1:6379> keys *
(error) ERR operation not permitted
redis 127.0.0.1:6379> auth beijing
OK
redis 127.0.0.1:6379> keys *
1) "name"
redis 127.0.0.1:6379> exit
[root@localhost ~]# /usr/local/redis/bin/redis-cli -a beijing
redis 127.0.0.1:6379> keys *
1) "name"
2.主从复制
Redis主从复制配置和使用都非常简单。通过主从复制可以允许多个slave server拥有和master server相同的数据库副本。
1).Redis主从复制特点:
a.Master可以拥有多个slave
b.多个slave可以连接同一个master外,还可以连接到其它slave
c.主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
d.提高系统的伸缩性
2).Redis主从复制过程:
a.Slave与Master建立连接,发送sync同步命令
b.Master会启动一个后台进程,将数据库快照保存到文件中,同时Master主进程会开始收集新的写命令并缓存
c.后台完成保存后,就将此文件发送给slave
d.Slave将此文件保存到硬盘上
3).配置主从服务器
配置slave服务器很简单,只需要在slave的配置文件中加入以下配置:
slaveof 192.168.1.1 6379 #指定master的ip和端口
masterauth beijing #这是主机的密码
[root@localhost ~]# vi /usr/local/redis/etc/redis.conf
//修改其中的slaveof <maserip> <masterport>、masterauth <master-password>
[root@localhost ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
[root@localhost ~]# /usr/local/redis/bin/redis-cli -a beijing
redis 127.0.0.1:6379> keys *
(empty list or set)
配置好后,在Master设置任何key,在Slaver数据库中也会有,表示主从复制成功。
如我们在主数据库上设置一对键值对
redis 127.0.0.1:6379> set name master
OK
redis 127.0.0.1:6379>
在从数据库上取这个键
redis 127.0.0.1:6379> get name
"master"
redis 127.0.0.1:6379>
我们怎么判断哪个是主哪个是从呢?我们只需调用info就可以得到主从信息,我们在从库中执行info如下:
redis 127.0.0.1:6379> info
role:slave
master_host:localhost
master_port:6379
master_link_status:up
master_last_io_seconds_ago:10
master_sync_in_progress:0
db0:key=1,expires=0
redis 127.0.0.1:6379>
里面的role会显示是Master还是Slave服务器,master_link_status的值是up表示正在连接Master服务器。
说明:本文是我网上学习LAMP兄弟连李捷老师《NoSQL数据库之Redis数据库管理》的学习笔记。
相关推荐
NoSQL数据库之Redis数据库
### NoSQL数据库之Redis数据库管理视频教程 #### NoSQL数据库简介 NoSQL(Not Only SQL)数据库是指非关系型数据库,它们与传统的关系型数据库在数据存储方式上有显著区别。NoSQL数据库通常支持灵活的数据模式,...
教程名称:NoSQL数据库之Redis视频教程(8集)课程目录:【】NoSQL数据库之Redis视频教程01【】NoSQL数据库之Redis视频教程02【】NoSQL数据库之Redis视频教程03【】NoSQL数据库之Redis视频教程04【】NoSQL数据库之...
### NoSQL数据库之Redis知识点详解 #### 一、NoSQL数据库概述 - **NoSQL**:Not Only SQL,指的是非关系型数据库。这类数据库的设计旨在处理海量数据,并且支持高并发访问,通常用于大规模分布式存储环境中。 - *...
NoSQL数据库之Redis数据库笔记是兄弟连NoSQL视频教程 redis讲的课程所做的笔记,里面很全面的讲述了Redis的完整使用和说明,很详细
Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,常被用于数据库、缓存以及消息中间件等场景。它支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合...
总结,Redis作为NoSQL数据库的一员,凭借其高效、灵活的特性和丰富多样的数据类型,为开发人员提供了强大且便捷的数据管理工具。理解和掌握Redis的使用,对于提升应用程序的性能和扩展性至关重要。
此外,NOSQL数据库通常具有特定的API和语法,适应不同的业务场景,如MongoDB适合内容管理系统,Redis则是一款多功能的数据结构服务器,而Hbase和Cassandra则常用于海量数据处理。 Redis是一款高性能的键值对数据库...
标题 "NoSQL数据库之Redis.zip" 提到的核心知识点是NoSQL数据库中的Redis,这是一个非常重要的分布式数据存储系统,尤其在处理大数据场景时被广泛应用。现在,让我们深入探讨一下Redis及其在大数据环境中的作用。 ...
本篇文章将主要聚焦于Redis中的两种基础数据类型——String和Hash,以及它们在数据库管理中的应用。 首先,让我们深入了解String类型。在Redis中,String是最基本的数据类型,可以存储字符串、整数或浮点数。例如,...
### NoSQL数据库-MongoDB和Redis #### 一、NoSQL简述 NoSQL数据库的出现是为了应对传统关系型数据库无法解决的一些问题,特别是在大规模数据处理方面。CAP理论(Consistency,Availability,Partition Tolerance)...
标题和描述中的知识点聚焦于高性能NoSQL数据库Redis的特性与应用,以下将深入解析这些关键概念,以便更好地理解和掌握Redis的使用。 ### Redis的核心概念 #### Redis是什么? Redis,全称为Remote Dictionary ...
1. **高可扩展性**:NoSQL数据库设计之初就考虑到了水平扩展的问题,能够轻松地通过增加更多的服务器来提升性能和容量。 2. **高性能**:NoSQL数据库采用内存缓存技术和优化的索引机制,能够实现快速读写操作。 3. *...
里面详细记载了Redis的安装与使用,已经对集群结构和哨兵模式的讲解和实现
NewSQL数据库是指继承了NoSQL数据库的优点,同时也解决了NoSQL数据库的不足之处的数据库管理系统。NewSQL数据库具有高性能、高可用性和高扩展性等特点,例如Google的Spanner和Amazon的Aurora等。
标题中的“用golang实现的一个轻量级noSQL数据库,支持redis命令的一个常用小子集”表明,这是一个基于Golang编程语言构建的轻量级非关系型数据库(NoSQL)系统,它部分兼容Redis命令。这通常意味着该数据库系统提供...
作为NoSQL数据库的一种,Redis以其快速的响应速度和高效的数据处理能力而著称。其内存中的存储方式允许数据的高速读写,同时提供了持久化机制,能够将内存中的数据保存到硬盘中,保证数据的安全性。 由于其数据结构...
NoSQL 数据库的特点与应用场景 NoSQL 数据库是当前数据库领域的热门话题,无论是在大数据时代还是在面对快速增长的数据规模和日渐复杂的数据模型中,NoSQL 数据库都扮演着越来越重要的角色。本文将从 NoSQL 数据库...