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 myKey和set myKey和sEt myKey都是一回事
但SET myKey和SET MyKey则不一样
常见用法
SET key value– 为键设置一个值,其中value加不加引号是一样的,不过要想存储引号的时候value必须加引号并且将字符串中的引号加反斜杠\进行转义GET key– 返回这个键对应的值DEL key– 如果存在的话删除这个键并返回1,不存在的话返回0EXISTS key– 检查是否存在这个键,存在返回1,否则返回0RENAME key newKey– 重命名键KEYS pattern– 返回符合指定规则的所有键的列表
先列这么多
Redis数据类型
字符串String
Redis中最基本的数据类型,一个键(key)对应一个字符串值(value)
读写分别为GET key和SET key "hello"
GETSET key value– 给key设置新的值,同时返回旧的值STRLEN key– 返回key对应字符串的长度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 | 1) "field1" |
- 其它操作哈希表的命令
HDEL mapName field– 删除一个字段,也可以在后面追加其它字段以一次性删除多个字段HEXISTS mapName field– 检查哈希表中是否存在某个字段,存在返回1,否则返回0HGET mapName field– 获取哈希表中指定字段的值HLEN mapName– 哈希表中字段的数量HKEYS mapName– 哈希表中所有的字段HVALS mapName– 哈希表中所有的值
列表List
存储一系列字符串,通常把它当做双向队列使用
常见命令:
LPUSH key val和RPUSH key val– 在列表key的左边和右边插入一个字符串valLPUSHX key val和RPUSHX key val– 和上面一组命令功能相同,区别是这组命令必须在列表key存在时才会执行插入操作LPOP key和RPOP key– 分别从列表key的左边和右边移除一个元素,并返回这个元素的值BLPOP key timeout和BRPOP key timeout– 如果列表key里面一个元素都没有,使用上面的pop命令会直接返回空(nil)。使用这组前面加”B”的命令可以使命令阻塞,直到列表中出现了可以被弹出的元素或者时间达到timeout指定的超时时间。
另外,这组命令中的key可以指定多个,例如BLPOP listA listB listC 2,这条命令会依次从listA,listB,listC中寻找可以弹出的元素,如果都没有则阻塞等待。
返回值包括元素本身以及这个元素之前所属的列表名称RPOPLPUSH src dest和BRPOPLPUSH src dest timeout– 转移元素,从src的右边弹出一个元素并插入到dest的左边,后者和上面一组类似,如果src里没有元素可以弹出了,就阻塞最多timeout秒。返回被转移的元素LINDEX key idx– 根据索引idx从列表key中获取元素,idx从0开始LSET key idx val– 和第6条对应,根据索引修改元素的值LLEN key– 获取列表key的长度LRANGE key start stop– 获取列表key中索引从start到stop的元素,LRANGE key 0 -1可以快速获得所有的元素LREM key count val– 删除列表中的某些元素,具体用法比较复杂,可以参考官方文档