redis的基本使用
数据类型
redis支持多种数据类型,常用的是这5种
String常用指令
- 设置/修改值(key存在则做添加,不存在则做修改)
- set key value
- 设置/修改值(有过期时间)
- setex key time value
- 例:setex key3 10 123,表示10秒后过期,key3的value由123变成nil
- 设置值(若key不存在则做添加,存在则不做操作)
- setnx key value
- 利用这一特性实现分布式锁
- 取值
- get key
- 批量添加
- mset k1 v1 [k2 v2 k3 v3 ...]
- 批量取值
- mget k1 [k2 k3 ...]
- 在key对应的上实现value自增/自减(其value一般是数字)
- incr key
- decr key
- 在key对应的value上实现加x/减x
- incrby key x
- decrby key x
- 在指定的key对应的value拼接字符串
- append key value
- 例:若key1对应的value的值是“aaa”,则在append key1 bbb操作后,key1对应的value值是aaabbb
- strlen key
- 获取key对应的value值的长度
Hash常用指令
- 往key对应的hash中添加键值对
- hset key field value
- 往key对应的hash中添加键值对,如果field在hash中已经存在,则添加失败
- hsetnx key field value
- 从对应的key中获取对应的field的值
- hget key field
- 往对应的key中批量添加/获取键值对
- hmset key f1 v1 [f2 v2 ...]
- hmget key f1 v1 [f2 v2 ...]
- key对应的field的value值加value
- hincrby key field value
- 获取key对应的hash中所有的键值对
- hgetall key
- 获取key对应的hash中所有的field
- hkeys key
- 获取key对应的hash中所有的value
- hvals key
- 检查key对应的hash中是否有指定的field
- hexists key field
- 获取key对应的hash中的键值对个数
- hlen key
List常用指令
- 存储数据(从左往右添加数据/从右往左添加数据)
- lpush key value
- rpush key value
- 获取数据
- lpop key
- rpop key
- 修改key对应的列表中对应索引位置的数据(从左往右,从0开始计数)
- lset key index value
- 查看key对应列表中,索引从start到stop的数据
- lrange key start stop
- lindex key index
- 查看key对应列表中指定索引处的值
- 获取key对应列表中的元素个数
- llen key
- 截取key对应的列表中[start,stop]的值,不在此范围的数据会被清除
- ltrim key start stop
- 从k1右侧取出一个数据,存放到k2左侧
- rpoplpush k1 k2
Set常用指令(元素无序且不重复)
- 存储元素,在key对应的集合中添加一个或多个元素
- sadd key v1 [v2 v3 ...]
- 遍历key对应集合中的所有元素
- smembers key
- 随机从key对应的集合中获取一个值(出栈)
- spop key
- 取两个集合的交集
- sinter key1 key2
- 取两个集合的并集
- sunion key1 key2
- 取两个集合的差集
- sdiff key1 key2
- 从key对应的集合中移除某元素
- srem key value
- 检查key对应的集合中是否有指定的value
- sismember key value
zset常用指令(元素有序且不重复)
- 存储数据(score存储的位置必须是数值,可以是float类型的任意数字)
- zadd key score1 member1 [score2 member2 ...]
- 查看key对应的集合中索引[start,stop]中的数据(按照score值递增排序输出)
- zrange key start stop
- 查看member元素在key对应集合中的索引
- zscore key member
- 获取key对应的集合中的元素个数
- zcard key
- 获取key对应集合中,索引在[min,max]范围内的元素个数
- zcount key min max
- 移除元素member
- zrem key member
- 查看索引[start,stop]中的数据(按照score值递减排序输出)
- zrevrange key start stop
其他指令
- 为有时间限制的键值对延长过期时间
- expire key s
- pexpire key ms
- 查看指定key的剩余时限
- ttl key
- 选择数据库(默认进入的数据库是[0])
- select number
- 注:若进入了[1]数据库,则会显示
- 清除当前数据库的所有数据
- flushdb
- 清除所有数据库的所有数据
- flushall
- 查询上一次执行持久化的时间
- lastsave