启动服务端;redis-server启动客户端;redis-cli --raw运行测试命令: PING
异常场景;PING Could not connect to Redis at 127.0.0.1:6379: Connection refused正常场景;PONG 切换数据库;Select 1
注意;数据库没有名称;默认 16 个;通过 0-15 来标识 Redis键值对说明
redis 是 key-value 的数据结构; 每条数据都是一个”键值对”; 键(key)的类型是字符串(string);值(value)类型分为五种;
字符串 string;
哈希 hash;
链表 list;
无序集合 set;
有序集合 zset;
字符串 string
字符串(string)是 redis 最基本的类型;
增加、修改
如果设置的键不存在则为添加;如已经存在则为修改;redis 中字符串;string;可以用单引号’’,或者双引号””引起来;也可以省略引号;如;”china”, ’china’, china 三种写法都可以;
设置键值 set key value
例;设置健’user1’值为’aaa’
set ;user1; ;aaa;
设置键值及过期时间;以秒为单位 setex key seconds value
例;设置键’user2’值为’bbb’;过期时间为 3 秒
setex ‘user2’ 3 ‘bbb
设置多个键值对mset key1 value1 key2 value2 ......
例;设置键’user3’值为’ccc’;设置键’user4’值为’ddd’;设置键’user5’值为’eee’
mset ;user3; ;ccc; ;user4; ;ddd; ;user5; ;eee;
追加值append key value
获取单个值get key
注意;根据键获取值;如果不存在返回 nil
获取多个值 mget key1 key2 ......
删除键及其对应的值del key1 key2 ......
查找键keys pattern
查看所有键
keys *查看名称包含指定内容的键
keys ;*s*参数支持正则表达式;找到键;返回键名;找不到返回空
判断键是否存在exists key
注意;如果存在返回 1;不存在返回 0
查看键对应的 value 类型type key
设置键过期时间expire key seconds
以秒为单位如果没有指定过期时间则一直存在;直到使用 del 移除
查看键有效时间ttl key
以秒为单位返回大于 0;代表有效时间;单位;秒;返回-1 为永远有效;返回-2 为键不存在;
哈希 hash
hash 用于存储”键值对”集合;每个哈希中的键可以理解为字段(field);一个字段(field)对应一个值(value);hash 中值(value)类型为字符串;string;;同一个哈希中字段名(field)不可以重复。
增加修改
如果设置的字段不存在则为添加;如已经存在则为修改;
设置单个字段 hset key field value
例;设置键’huser1’的字段’name’值为’tom‘
hset huser1 name tom
设置多个字段hmset key field1 value1 field2 value2 ......
例;设置键’huser2’的字段’name’值为’mary’;字段’sex’值为’female’
hmset ‘huser2’ ‘name’ ‘mary’ ‘sex’ ‘female’
获取指定键所有的字段hkeys key
获取一个字段值hget key field
获取多个字段值hmget key field1 field2
获取所有字段的值hvals key
获取所有字段名包括字段对应的值hgetall key
删除 hash 中指定字段hdel key field1 field2
删除整个 hash 键及字段与值;使用 del命令del key1 key2 ......
列表 List
链表中的值(value)类型为字符串(string);链表中每个值按照添加的顺序排序。
从左侧插入值 lpush key value1 value2......
从右侧插入值rpush key value1 value2.......
在指定值的前或后插入值linsert key before或after值插入的值
例;在键’luser1’的列表中值’cc’前加入值’11’
linsert ;luser1; before ;cc; ;11; 例;在键’luser1’的列表中值’cc’后加入值’22’
linsert ;luser1; after ;cc; ;22
获取列表值lrange key start stop
返回列表里指定范围内的值索引从左侧开始;第一个值的索引为 0;索引可以是负数;表示从尾部开始计数;如;-1 表示最后一个值;start,stop 为要获取值的索引。
修改列表值lset key index value
设置指定索引位置的值索引从左侧开始;第一个值的索引为 0;索引可以是负数;表示从尾部开始计数;如;-1 表示最后一个值;
删除指定值lrem key count value
将列表中前 count 次出现的值移除;count > 0:从头往尾删除;count < 0:从尾往头删除;count = 0:删除所有值l;
无序集合 set
无序集合中值(value)类型为字符串(string);集合里不允许有重复的值;说明;对于集合里的值只能添加与删除;不能修改;
集合中增加值sadd key value1 value2 ......
返回所有值smembers key
删除指定值srem key value
有序集合 zset
有序集合中值(value)类型为字符串(string);集合里不允许有重复的值;;每个值都会关联一个分数(score);分数(score)可以为负数;通过分数(score) 将值从小到大排序;说明;对于有序集合里的值只能添加与删除;不能修改。
增加值zadd key score 1 value1 score2 value2 ...
返回指定返回范围内的值zrange key start stop [withscores]
start,stop 为值的下标索引;第一个值的索引为 0;索引可以是负数;表示从尾部开始计数;-1 表示最后一个值;withscores: 同时获取值对应分数(score);例;获取键’zuser1’的集合中所有值
zrange ;zuser1; 0 -1 例;获取键’zuser1’的集合中所有值, 同时获取每个值对应的分数
zrange ;zuser1; 0 -1 withscores 例;返回分数(score)在 min 和 max 之间的值
zrangebyscore key min max
返回值 value 的分数(score)zscore key value
删除指定值zrem key value1 value2 ....
删除分数(score)在指定范围之间的值zremrangebyscore key min max