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