Redis基本用法(一)

Redis安装

启动Redis

服务端

1
$ redis-server

客户端

1
$ redis-cli

远程连接时(远程主机的防火墙要配置好,否则会拒绝连接)

1
$ redis-cli -h $HOST_NAME -p $PORT -a $PASSWORD

Redis的键:

格式

1
redis 127.0.0.1:6379> COMMAND KEY_NAME

命令是不分大小写的,键的名字则要区分大小写
SET myKeyset myKeysEt myKey都是一回事
SET myKeySET MyKey则不一样

常见用法

  1. SET key value – 为键设置一个值,其中value加不加引号是一样的,不过要想存储引号的时候value必须加引号并且将字符串中的引号加反斜杠\进行转义
  2. GET key – 返回这个键对应的值
  3. DEL key – 如果存在的话删除这个键并返回1,不存在的话返回0
  4. EXISTS key – 检查是否存在这个键,存在返回1,否则返回0
  5. RENAME key newKey – 重命名键
  6. KEYS pattern – 返回符合指定规则的所有键的列表

先列这么多

Redis数据类型

字符串String

Redis中最基本的数据类型,一个键(key)对应一个字符串值(value)
读写分别为GET keySET key "hello"

  1. GETSET key value – 给key设置新的值,同时返回旧的值
  2. STRLEN key – 返回key对应字符串的长度
  3. APPEND key value – 如果key已存在并且对应一个字符串,将value追加到旧的值的末尾,否则创建key,值为value

哈希表Hash Map

哈希表可以存储一系列string到string的映射表,这些键值对组合到一起就成了哈希表,所以哈希表比较适合存储对象

  • 创建哈希表使用如下命令

该命令同样可以修改已经存在的哈希表

1
HMSET mapName field1"value1" field2 "value2" field3 "value3"
  • 读取哈希表使用HGETALL mapName命令

会依次显示每个键值对的key和value

1
2
3
4
5
6
1) "field1"
2) "value1"
3) "field2"
4) "value2"
5) "field3"
6) "value3"
  • 其它操作哈希表的命令
  1. HDEL mapName field – 删除一个字段,也可以在后面追加其它字段以一次性删除多个字段
  2. HEXISTS mapName field – 检查哈希表中是否存在某个字段,存在返回1,否则返回0
  3. HGET mapName field – 获取哈希表中指定字段的值
  4. HLEN mapName – 哈希表中字段的数量
  5. HKEYS mapName – 哈希表中所有的字段
  6. HVALS mapName – 哈希表中所有的值

列表List

存储一系列字符串,通常把它当做双向队列使用
常见命令:

  1. LPUSH key valRPUSH key val – 在列表key的左边和右边插入一个字符串val
  2. LPUSHX key valRPUSHX key val – 和上面一组命令功能相同,区别是这组命令必须在列表key存在时才会执行插入操作
  3. LPOP keyRPOP key – 分别从列表key的左边和右边移除一个元素,并返回这个元素的值
  4. BLPOP key timeoutBRPOP key timeout – 如果列表key里面一个元素都没有,使用上面的pop命令会直接返回空(nil)。使用这组前面加”B”的命令可以使命令阻塞,直到列表中出现了可以被弹出的元素或者时间达到timeout指定的超时时间。
    另外,这组命令中的key可以指定多个,例如BLPOP listA listB listC 2,这条命令会依次从listA,listB,listC中寻找可以弹出的元素,如果都没有则阻塞等待。
    返回值包括元素本身以及这个元素之前所属的列表名称
  5. RPOPLPUSH src destBRPOPLPUSH src dest timeout – 转移元素,从src的右边弹出一个元素并插入到dest的左边,后者和上面一组类似,如果src里没有元素可以弹出了,就阻塞最多timeout秒。返回被转移的元素
  6. LINDEX key idx – 根据索引idx从列表key中获取元素,idx从0开始
  7. LSET key idx val – 和第6条对应,根据索引修改元素的值
  8. LLEN key – 获取列表key的长度
  9. LRANGE key start stop – 获取列表key中索引从start到stop的元素,LRANGE key 0 -1可以快速获得所有的元素
  10. LREM key count val – 删除列表中的某些元素,具体用法比较复杂,可以参考官方文档