云服务器日付 介绍 Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并···
云服务器日付
介绍
Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets)和有序集合(sorted sets)等类型。
1、Redis概述
1.1、NoSQL
NoSQL,泛指非关系型的数据库,是不同于传统的关系型数据库的数据库管理系统的统称。
NoSQL用于超大规模数据的存储,收集万亿比特的数据。这些类型的数据存储没有固定的形式,没有多余操作就可以横向扩展。
1.2、什么是Redis
Redis是NoSQL中的一种存储工具,他是一个key-value存储系统。默认有16个数据库从0到15来进行表示。Redis的存储类型:包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。在此基础上,Redis支持各种不同方式的排序。
Redis 被广泛应用在缓存方向,与传统数据库不同的是 Redis 的数据是存在内存中的,因此读写速度非常快。
Redis为分布式缓存,在多客户端的情况下,共用一份缓存数据,缓存具有一致性。
Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,为了可靠性。
1.3、Redis特点
性能极高– Redis读的速度是11W次/s,写的速度是81K次/s
支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
丰富的数据类型,Redis不仅仅支持简单的key-value类型的数据,同时还提供Strings, Lists, Hashes, Sets 及 Ordered Sets 等数据结构的存储。
支持数据的备份,即master-slave模式的数据备份。
1.4、Redis优缺点
优点:
对数据高并发读写对海量数据的高效率存储和访问对数据具有的可扩展性和高可用性缺点:
redis(ACID)处理非常简单无法做到太复杂的关系数据库模型2、Redis下载与安装
2.1、下载
http://www.redis.cn/download.html
2.2、安装
2.2.1、指定redis存放位置
/usr/local/目录下
2.2.2、解压
[root@localhost local] tar xzf redis-5.0.5.tar.gz
2.2.3、改名
[root@localhost local] mv redis-5.0.5 redis
2.2.3、安装
进入redis目录,输入make
[root@localhost /] cd /usr/local/redis[root@localhost redis] make
2.2.4、启动服务
进入src目录,输入./redis-server
[root@localhost redis] cd src[root@localhost src] ./redis-server
传文件到阿里云服务器
2.2.5、使用客户端程序
进入src目录,输入./redis-cli
[root@localhost ~] cd /usr/local/redis/src[root@localhost src] ./redis-cli
3、服务器操作
3.1、服务器端
3.1.1、查看是否启动
[root@localhost redis] ps -ef|grep redis
或
[root@localhost redis] ./src/redis-cli ping
3.1.2、启动
前台启动
[root@localhost redis] ./src/redis-server
后台启动
修改/usr/local/redis/redis.conf文件
daemonize yes 前台启动,改后台启动
指定配置文件,启动
[root@localhost redis] ./src/redis-server ./redis.conf
3.1.3、关闭
[root@localhost redis] ./src/redis-cli shutdown
3.2、客户端
3.2.1、启动
[root@localhost redis] ./src/redis-cli127.0.0.1:6379>
3.2.2、关闭
方式一:指令ctrl+c
方式二:执行指令quit
方式三:执行指令exit
3.3、设置远程访问
修改/usr/local/redis/redis.conf文件
bind 127.0.0.1 注释掉允许本地连接protected-mode no 允许远程访问
4、Redis客户端
4.1、下载
https://redisdesktop.com/pricing
4.2、安装
双击打开程序,选择下一步
继续选择我同意
选择安装路径,点击安装
安装中。。。。。。。
安装完成,点击下一步
选择桌面快捷,点击完成
5、Redis客户端应用
5.1、连接Redis服务端
打开客户端
点击Connect to Redis Server,创建连接
5.2、客户端操作
6、命令操作-上
6.1、连接命令
ping
云堤高防服务器
通常用于测试与服务器的连接是否仍然生效,或者用于测量延迟值。
如果连接正常就返回一个PONG ,否则返回一个连接错误。
127.0.0.1:6379> pingPONG
echo m
打印一个特定的信息 m ,测试时使用。
127.0.0.1:6379> echo hello world"hello world"
select i
切换到指定的数据库,数据库索引号 i 用数字值指定,以 0 作为起始索引值。默认使用 0号数据库。
127.0.0.1:6379> select 1OK127.0.0.1:6379[1]>
案例:
在0号数据库中设置键a为‘hello world’,在1号数据库中调用
127.0.0.1:6379> set a hello worldOK127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> get a(nil)
auth pword
开启了密码保护,在每次连接 Redis 服务器之后,就要使用auth命令解锁,解锁之后才能使用其他 Redis 命令。密码匹配时返回 OK ,否则返回一个错误。
设置密码
127.0.0.1:6379> config set requirepass redis123456OK requirepass的值就是密码127.0.0.1:6379> quit
在次登录
[root@localhost redis] ./src/redis-cli127.0.0.1:6379> ping(error) NOAUTH Authentication required.127.0.0.1:6379> auth redis123456OK127.0.0.1:6379> pingPONG
清空密码
127.0.0.1:6379> config set requirepassOK requirepass的值就是密码127.0.0.1:6379> quit
quit
请求服务器关闭与当前客户端的连接。总是返回 OK (但是不会被打印显示,因为当时 Redis-cli 已经退出)。
127.0.0.1:6379[1]> quit[root@localhost redis]
5.2、键命令
set key value
将字符串值 value关联到 key 。
127.0.0.1:6379> set key1 1 传入的都是字符串OK
get key
返回 key所关联的字符串值。如果 key 不存在那么返回特殊值 nil 。
127.0.0.1:6379> get key1"1"
del key1 [key2 ... keyn]
删除给定的一个或多个 key 。没有的key忽略,返回被删除 key 的数量。
127.0.0.1:6379> del key1(integer) 1
案例:
声明key1,key2,key3,删除key1,key2,key4
127.0.0.1:6379> set key1 1OK127.0.0.1:6379> set key2 1OK127.0.0.1:6379> set key3 1OK127.0.0.1:6379> del key1 key2 key4(integer) 2
exists key
检查给定 key 是否存在。若 key 存在,返回 1 ,否则返回 0 。
127.0.0.1:6379> exists key3(integer) 1
type key
返回 key 所储存的值的类型。none (key不存在)、string (字符串)、list (列表)、set (集合)、zset (有序集)、hash (哈希表)
127.0.0.1:6379> type key1string
7、命令操作-下
7.1、键命令
expire key seconds
为给定 key 设置生存时间,以秒为单位,当 key 过期时(生存时间为 0 ),它会被自动删除。设置成功返回 1 。其他为0。
127.0.0.1:6379> expire key3 30(integer) 1127.0.0.1:6379> ttl key3 查看有效时间(integer) 24127.0.0.1:6379> exists key3 验证是否存在(integer) 0
pexpire key mseconds
这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE 命令那样,以秒为单位。设置成功,返回 1。key不存在或设置失败,返回0
127.0.0.1:6379> set key1 abcOK127.0.0.1:6379> pexpire key1 10000(integer) 1127.0.0.1:6379> ttl key1(integer) 5127.0.0.1:6379> pttl key1(integer) 746
persist key
移除给定 key 的生存时间,将这个 key 从易失的转换成持久的。当生存时间移除成功时,返回 1 .如果 key 不存在或 key 没有设置生存时间,返回 0 。
127.0.0.1:6379> set zhangwu 1OK127.0.0.1:6379> persist zhangwu(integer) 0127.0.0.1:6379> expire zhangwu 30(integer) 1127.0.0.1:6379> persist zhangwu(integer) 1127.0.0.1:6379> ttl zhangwu(integer) -1
ttl key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。
127.0.0.1:6379> set key1 helloworldOK127.0.0.1:6379> ttl key1(integer) -1127.0.0.1:6379> expire key1 50(integer) 1127.0.0.1:6379> ttl key1(integer) 44127.0.0.1:6379> ttl key1(integer) -2
pttl key
这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 TTL 命令那样,以秒为单位。当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。
127.0.0.1:6379> pttl key1(integer) -2127.0.0.1:6379> set key1 abcOK127.0.0.1:6379> pexpire key1 30000(integer) 1127.0.0.1:6379> pttl key1(integer) 27345
keys pattern
查找所有符合给定模式 pattern 的 key 。符合给定模式的 key 列表。
通配符
* 表示多个字符? 表示一个字符[] 表示只能是[]里面的字符 表示指定特殊字符
127.0.0.1:6379> mset zhangsan 1 zhangsi 2 zhangwu 3OK127.0.0.1:6379> keys *1) "zhangwu"2) "zhangsan"3) "zhangsi"127.0.0.1:6379> keys ng*(empty list or set)127.0.0.1:6379> keys *ng*1) "zhangwu"2) "zhangsan"3) "zhangsi"127.0.0.1:6379> keys zhang??1) "zhangwu"2) "zhangsi"127.0.0.1:6379> keys zha[ng]si(empty list or set)127.0.0.1:6379> keys zhan[ng]si1) "zhangsi"
move key db
将当前数据库的 key 移动到给定的数据库 db 当中。移动成功返回 1 ,失败则返回 0 。
127.0.0.1:6379> keys *1) "zhangwu"2) "zhangsan"3) "zhangsi"127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> keys *(empty list or set)127.0.0.1:6379[1]> select 0OK127.0.0.1:6379> move zhangsan 1(integer) 1127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> keys *1) "zhangsan"127.0.0.1:6379[1]> select 0OK127.0.0.1:6379> keys *1) "zhangwu"2) "zhangsi"
注意:
key不存在时,移动失败
key移动到1库时,1库中出现同名的key,移动失败
random key
从当前数据库中随机返回(不删除)一个 key 。当数据库不为空时,返回一个 key 。当数据库为空时,返回 nil 。
127.0.0.1:6379> randomkey"zhangwu"127.0.0.1:6379> randomkey"key"127.0.0.1:6379> randomkey"key"127.0.0.1:6379> randomkey"zhangwu"
rename key newkey
将 key 改名为 newkey 。改名成功时提示 OK ,失败时候返回一个错误。
127.0.0.1:6379> rename key key1OK127.0.0.1:6379> keys *1) "key1"2) "zhangwu"3) "zhangsi"
注意:
当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。
当 newkey 已经存在时, RENAME 命令将覆盖旧值。
renamenx key newkey
当且仅当 newkey 不存在时,将 key 改名为 newkey 。修改成功时,返回 1 。如果 newkey 已经存在,返回 0 。
127.0.0.1:6379> renamenx zhangsi zhangwu(integer) 0127.0.0.1:6379> renamenx zhangsi zhangsan(integer) 1127.0.0.1:6379> keys *1) "zhangsan"2) "key1"3) "zhangwu"
如何打开阿里云服务器

发表评论
最近发表
标签列表