Redis数据库学习(基础)

Redis介绍

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。

Redis安装

linux下:

$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

安装后

$ cd src
$ ./redis-server

就可以启动redis

在后台启动 ./redis-server &

$ cd src
$ ./redis-cli

就可以与redis交互了

redis配置

Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf(Windows 名为 redis.windows.conf)。

你可以通过 CONFIG 命令查看设置配置项。

查看配置: CONFIG GET

格式: redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME

编辑配置: CONFIG SET

语法: redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE

几个常见配置:

port 6379 : 端口,默认6379

bind 127.0.0.1 : 绑定的主机地址 (127.0.0.1 为本机可访问,0.0.0.0 任意机器可访问,redis未授权访问)

dir ./ : 指定本地数据库存放目录,常用来写shell

dbfilename dump.rdb : 指定本地数据库文件名,默认值为 dump.rdb (配合上一条写SHELL)

Redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

string:
redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象,string 类型的值最大能存储 512MB。

Hash:
Redis hash 是一个键值(key=>value)对集合

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

List(列表):

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

Set(集合):

Redis 的 Set 是 string 类型的无序集合

zset(sorted set:有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员

Redis命令

客户端基本语法: redis-cli

启动 redis 服务器,打开终端并输入命令 redis-cli,该命令会连接本地的 redis 服务。

在远程服务上执行命令

如果需要在远程 redis 服务上执行命令,同样我们使用的也是 redis-cli 命令。

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

Redis 键命令

Redis 键命令用于管理 redis 的键。

基本语法 : COMMAND KEY_NAME

例: SET lonmar hacker

DEL 删除命令。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0

lonmar 是 键 hacker是 value值

其他的几个键命令:

EXISTS key 检查给定 key 是否存在。

DUMP key 序列化给定 key ,并返回被序列化的值。

TYPE key 返回 key 所储存的值的类型。

Redis 字符串(String)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值

其实和key value类似

语法 COMMAND KEY_NAME

常用的 redis 字符串命令:

SET key value 设置指定 key 的值
GET key 获取指定 key 的值。
GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。

Redis Hash

常用命令:

HDEL key field1 [field2] 删除一个或多个哈希表字段
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。
HGET key field 获取存储在哈希表中指定字段的值。
HGETALL key 获取在哈希表中指定 key 的所有字段和值
HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment
HKEYS key 获取所有哈希表中的字段
HMGET key field1 [field2] 获取所有给定字段的值
HMSET key field1 value1 [field2 value2 ] 同时将多个 field-value (域-值)对设置到哈希表 key 中。

Redis 数据备份与恢复

Redis SAVE 命令用于创建当前数据库的备份

redis Save 命令基本语法:

redis 127.0.0.1:6379> SAVE

redis 127.0.0.1:6379> SAVE 
OK

恢复数据

如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可

获取 redis 目录: CONFIG GET dir

redis安全性

给redis加锁

通过命令 CONFIG get requirepass 查看是否设置了密码验证:

默认情况下 requirepass 参数是空的,即无需密码访问redis

添加密码 CONFIG set requirepass "123456"

AUTH

如上一张图所示的,设置密码后要认证

AUTH PASSWORD

原文地址:https://www.cnblogs.com/l0nmar/p/13374797.html