内容纲要

Redis是Key Value类型的内存数据库,其中Value可以是String、List、Set、 Sorted Set、 Hash 等类型的数据结构。

Redis的安装及使用

Redis把整个数据库全加载到内存当中进行操作,通过异步操作定期把数据库数据 flush到硬盘上保存。因为是纯内存操作,所以Redis的性能非常出色,每秒处理10万次 以上的读写操作,是已知性能最快的Key Value数据库。

Redis有以下优点:

  • 支持丰富的数据类型:如String、List、Set、 Sorted Set、Hash等。
  • 支持两种数据持久化方式: Snapshotting (快照)和Append Only file (追加)。 支持主从复制。

key相关命令

Redis本质上是Key Value数据库,所以先了解key的相关操作。在Redis中, key
使用字符串存储,但是key中不能出现空格或者换行符“\n”,原因是空格和换行符都是Redis的特殊字符,但只限于key,value可以使用任何字符。

注意Redis以“ \ n”作为命令结束符,所以在key中不能存在“ \ n”,否则就会出
错。此外,Redis以空格作为命令和参数的分隔符,所以在key中也不能存在空格。

下面使用Redis提供的命令行操作工具redis cli与Redis服务器进行交互,并且测试
上面介绍的命令,使用下面的命令启动redis cli:

$/usr/bin/redis-cli
启动「edis-cli后,测试上述命令:
redis > set key1 valuel
OK
redis > set key2 value2
OK
redis > set key3 value3
OK
redis >randomkey
"key2"
redis > keys key*
1."value2"
2."value3"
3."valuer1"
redis>type key1
string
redis>del key1 key2
(integer) 2
red is > expire key3 600
(integer) 1
redis> rename key1 key 11
OK

应该尽量使用较短的key,因为较短的key可以节省内存和带宽。

Set SetEX SetNX GETSET

  • Set key value 将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值,无视类型。
  • SETEX key seconds value 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。如果 key 已经存在, SETEX 命令将覆写旧值。
  • SETNX key value 将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。
  • GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。当 key 存在但不是字符串类型时,返回一个错误。

List

  • LPush

  • LPushX

  • LPop

  • LLen

  • LInsert

  • LIndex

  • RPush

  • RPushX

  • RPop

  • RPopLPush

  • BLPOP

  • BRPop

  • BRPopLPush

  • LTrim

  • LRange

发表评论

电子邮件地址不会被公开。 必填项已用*标注