Redis简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
基本配置与使用
- 启动 Redis
redis-server
- 关闭 Redis
redis-cli shutdown
- Redis客户端启动
redis-cli
- Redis客户端退出
quit
- 在远程服务器上执行命令
redis-cli -h host -p port -a password
//host、port、password
实例:
redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
- 查看是否设置了密码验证
127.0.0.1:6379> CONFIG get requirepass
默认情况下 requirepass 为空,可以通过下面命令来修改该参数:
127.0.0.1:6379> CONFIG set requirepass "ljf123"
设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。
127.0.0.1:6379> AUTH "ljf123"
- Redis配置
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。
语法:
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
实例:
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
//使用 * 号获取所有配置项
redis 127.0.0.1:6379> CONFIG GET *
Redis 基本命令
- 选择数数据库,index为索引值名
select [index]
- 查看数据库内所有的key
keys *
- 清空当前数据库
flushdb
- 清空所有数据库
flushall
- Redis 字符串
SET key vakue
GET key
实例:
redis 127.0.0.1:6379> SET test redis
OK
redis 127.0.0.1:6379> GET test
"redis"
- Redis 哈希(Hash)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
实例:
127.0.0.1:6379> HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL runoobkey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
- Redis 列表(List)
Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
实例:
redis 127.0.0.1:6379> LPUSH runoobkey redis
(integer) 1
redis 127.0.0.1:6379> LPUSH runoobkey mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH runoobkey mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE runoobkey 0 10
1) "mysql"
2) "mongodb"
3) "redis"
- Redis 集合(Set)
Redis 的 Set 是 String 类型的无序集合。集合中不出现重复的数据。
实例:
edis 127.0.0.1:6379> SADD runoobkey redis
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mongodb
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 1
redis 127.0.0.1:6379> SADD runoobkey mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS runoobkey
1) "mysql"
2) "mongodb"
3) "redis"
- Redis 有序集合(Sorted Set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
实例:
redis 127.0.0.1:6379> ZADD runoobkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"