Redis数据库--快速入门手册

来源:互联网 发布:游戏配乐知乎 编辑:程序博客网 时间:2024/05/21 15:50

注:本篇博客的所有测试环境均为Ubuntu16.04之下,本篇博客总结自Redis教程。

数据库的安装与配置

Ubuntu下安装

  • $sudo apt-get update
  • $sudo apt-get install redis-server

服务端启动命令

redis-server


客户端启动命令

redis-cli

启动成功之后会出现:

redis 127.0.0.1:6379>

在终端上输入ping命令,如果出现pong则说明安装成功。


设置redis数据库可远程登录并设置登录密码

使用root权限修改/etc/redis/redis.conf文件:
这里写图片描述

这里写图片描述

这里写图片描述

想使用哪个密码进行登录就直接修改“password”这个字符串就行,如图我现在的密码是password。

设置允许远程登录:
这里写图片描述

将bind 127.0.0.1那一行进行注释。

修改完之后将redis服务进行重启:

sudo /etc/init.d/redis-server restart

修改完成之后我们的登录方式变为:

redis-cli -h 127.0.0.1 -p 6379(默认端口) -a password


redis的常用命令汇总

我将从redis数据库能够存储的数据结构的类型进行一个个的汇总(只是博主认为较常用的,详细的大家可以查阅官方文档或百度)

redis 127.0.0.1:6379> SET name redis
OK
redis 127.0.0.1:6379> DEL name
(integer) 1

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

  • EXISTS key
    检查给定 key 是否存在。
  • KEYS pattern
    查找所有符合给定模式( pattern)的 key 。
  • RENAME key newkey
    修改 key 的名称
  • TYPE key
    返回 key 所储存的值的类型。

字符串

redis 127.0.0.1:6379> SET name redis
OK
redis 127.0.0.1:6379> GET name
“redis”

我们使用了 SET 和 GET 命令,键为name。

  • MGET key1 [key2..]
    获取所有(一个或多个)给定 key 的值。
  • STRLEN key
    返回 key 所储存的字符串值的长度。
  • MSET key value [key value …]
    同时设置一个或多个 key-value 对。
  • INCR key
    将 key 中储存的数字值增一。
  • INCRBY key increment
    将 key 所储存的值加上给定的增量值(increment) 。
  • DECR key
    将 key 中储存的数字值减一。
  • DECRBY key decrement
    key 所储存的值减去给定的减量值(decrement) 。
  • APPEND key value
    如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。

哈希(Hash)

Redis hash 是一个string类型的field和value的映射表。Redis 中每个 hash 可以存储40多亿键值对。

127.0.0.1:6379> HMSET redis name “redis tutorial” description “redis basic commands for caching” likes 20 visitors 23000
OK
127.0.0.1:6379> HGETALL redis
1) “name”
2) “redis tutorial”
3) “description”
4) “redis basic commands for caching”
5) “likes”
6) “20”
7) “visitors”
8) “23000”

我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 redis 中。

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

列表(List)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或者尾部,一个列表最多可以包含40亿多个元素。

redis 127.0.0.1:6379> LPUSH redis redis
(integer) 1
redis 127.0.0.1:6379> LPUSH redis mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH redis mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE redis 0 10
1) “mysql”
2) “mongodb”
3) “redis”

在以上实例中我们使用了 LPUSH 将三个值插入了名为 redis 的列表当中。

  • BLPOP key1 [key2 ] timeout
    移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  • BRPOP key1 [key2 ] timeout
    移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  • LINDEX key index
    通过索引获取列表中的元素。
  • LLEN key
    获取列表长度。
  • LPOP key
    移出并获取列表的第一个元素。
  • LPUSH key value1 [value2]
    将一个或多个值插入到列表头部。
  • LRANGE key start stop
    获取列表指定范围内的元素(如上面的例子)。
  • LSET key index value
    通过索引设置列表元素的值。
  • LTRIM key start stop
    对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
  • RPOP key
    移除并获取列表最后一个元素。
  • RPUSH key value1 [value2]
    在列表尾部中添加一个或多个值。

集合(Set)

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。Set是String类型的无序集合。集合成员是唯一的。

redis 127.0.0.1:6379> SADD redis redis
(integer) 1
redis 127.0.0.1:6379> SADD redis mongodb
(integer) 1
redis 127.0.0.1:6379> SADD redis mysql
(integer) 1
redis 127.0.0.1:6379> SADD redis mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS redis
1) “mysql”
2) “mongodb”
3) “redis”

我们通过 SADD 命令向名为 redis 的集合插入的三个元素。

  • SADD key member1 [member2]
    向集合添加一个或多个成员
  • SCARD key
    获取集合的成员数
  • SISMEMBER key member
    判断 member 元素是否是集合 key 的成员
  • SMEMBERS key
    返回集合中的所有成员
  • SMOVE source destination member
    将 member 元素从 source 集合移动到 destination 集合
  • SREM key member1 [member2]
    移除集合中一个或多个成员
  • SUNIONSTORE destination key1 [key2]
    所有给定集合的并集存储在 destination 集合中

有序集合(sorted set)

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

redis 127.0.0.1:6379> ZADD redis 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD redis 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD redis 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD redis 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD redis 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE redis 0 10 WITHSCORES
1) “redis”
2) “1”
3) “mongodb”
4) “2”
5) “mysql”
6) “4”

我们通过命令 ZADD 向 redis 的有序集合中添加了三个值并关联上分数。

  • ZADD key score1 member1 [score2 member2]
    向有序集合添加一个或多个成员,或者更新已存在成员的分数。
  • ZCARD key
    获取有序集合的成员数。
  • ZCOUNT key min max
    计算在有序集合中指定区间分数的成员数。
  • ZINCRBY key increment member
    有序集合中对指定成员的分数加上增量 increment。
  • ZRANK key member
    返回有序集合中指定成员的索引。
  • ZREM key member [member …]
    移除有序集合中的一个或多个成员返回有序集合中指定成员的索引。
  • ZUNIONSTORE destination numkeys key [key …]
    计算给定的一个或多个有序集的并集,并存储在新的 key 中。
原创粉丝点击