Redis学习笔记(一)

一、Redis的特点及优势

Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存也可以持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。

Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

Redis 与其他 key-value缓存产品有以下三个特点:

  1.Redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以再次加载进行使用。

  2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。

  3.Redis支持数据的备份,即master-slave主从模式的数据备份

Redis的优势:

  1.性能极高:Redis读的速度是110000次/s,写的速度是81000次/s

  2.丰富的数据类型:Redis支持二进制案例的Strings、Lists、Hashs、Sets、Zsets数据类型操作。

  3.操作原子性:Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

  4.丰富的特性:发布订阅模式、key自动过期

二、Redis安装、启动、退出、设置密码、远程连接

1、安装Redis

下载Redis安装包(如:redis-2.8.17.tar.gz)

tar -zxvf redis-2.8.17.tar.gz
cd redis-2.8.17
make
sudo make install

2、后台启动服务端

nohup redis-server &

注意:redis-server 默认启动端口是6397,没有密码

如果不使用默认配置文件,启动时可以加上配置文件

nohup redis-server  ~/soft/redis-2.8.17/redis.conf &

3、启动客户端、验证

127.0.0.1:6379> ping
PONG

127.0.0.1:6379> set var "hello world"
OK
127.0.0.1:6379> get var
"hello world"

4、退出

关闭redis-server

redis-cli shutdown

例子

$ps -ef | grep redis
root     23422 19813  0 10:59 pts/5    00:00:08 redis-server *:6379

$sudo redis-cli  shutdown
[23422] 05 Mar 12:11:29.301 # User requested shutdown...
[23422] 05 Mar 12:11:29.301 * Saving the final RDB snapshot before exiting.
[23422] 05 Mar 12:11:29.314 * DB saved on disk
[23422] 05 Mar 12:11:29.314 # Redis is now ready to exit, bye bye...
[1]+  Done                    sudo redis-server  (wd: ~/soft/redis-2.10.3)
(wd now: ~/soft/redis-2.8.17)

$ps -ef | grep redis
myredis 30563 19813  0 12:11 pts/5    00:00:00 grep redis

注意:如果设置上密码后,单纯的redis-cli是关不掉的,必须加上ip、port、password

sudo redis-cli -h host -p port -a passwd shutdown

退出客户端

localhost:6379> QUIT

5、设立密码

打开redis.conf找到requirepass,去掉默认,修改

requirepass yourpassword

验证密码正确性

localhost:6379> auth myredis
OK

6、远程连接

需要已经安装redis, 可以使用redis-cli命令

redis-cli -h host -p port -a password

7、查看redis-server统计信息

INFO

三、Redis key

Redis是key-value的数据库,Redis的键用于管理Redis的键,基本语法是

COMMAND KEY_NAME

例子

localhost:6379> SET var redis
OK
localhost:6379> GET var
"redis"
localhost:6379> DEL var
(integer) 1
localhost:6379> GET var
(nil)

注意:redis命令不区分大小写,所以get var和GET var是等价的

DEl key 该命令用于在 key 存在时删除key
DUMP key 序列化给定的 key,并返回被序列化的值
EXISTS key 检查给定 key 是否存在
EXPIRE key seconds 为 key 设置过期时间
EXPIREAT key timestamp  EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
PEXPIRE key milliseconds  设置 key 的过期时间亿以毫秒计。
PEXPIREAT key milliseconds-timestamp  设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
KEYS pattern  查找所有符合给定模式( pattern)的 key 。例如keys * 返回所有的key
MOVE key db  将当前数据库的 key 移动到给定的数据库 db 当中。
PERSIST key  移除 key 的过期时间,key 将持久保持。
PTTL key  以毫秒为单位返回 key 的剩余的过期时间。
TTL key  以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
RANDOMKEY  从当前数据库中随机返回一个 key 。
RENAME key newkey  修改 key 的名称
RENAMENX key newkey  仅当 newkey 不存在时,将 key 改名为 newkey 。
TYPE key  返回 key 所储存的值的类型。
原文地址:https://www.cnblogs.com/be-thebest/p/10375768.html