redis(Remote Dictionary Server)是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中介。应为是内存数据库,一般都是简单的存取操作,所以读取时间非常快。
在linux中启动redis的命令为redis-cli --raw
raw表示识别中文字符,如果不加可能会导致不识别的情况。redis中的数据都是以 key value的形式存在。
redis支持丰富的数据类型:string字符串、list列表、hash散列(字典)、set集合、zset有序集合。下面将详细介绍以上几种数据类型的操作命令:
string字符串的增删改查
字符串创建使用set命令set key value
创建完以后使用get key
命令查看创建的键值对,查看当前数据库中所创建的所有key使用key *
命令。
使用set和get命令一次只能创建并查看一个键值对,可以使用mset和mget命令创建和查询多个字符串键值对。
使用set和mset命令创建字符串的时候如果之前存在key则会对原本的key进行覆盖。使用setnx命令可以在创建的时候避免被覆盖,若使用setnx key value
创建结果为0则表示该key存在。
在创建的时候可以在value后面添加**ex 时间(秒)**来对字符串键值对设置过期时间,查看过期时间使用ttl key
结果为-1便是永久有限,为-2表示已经被删除。使用persits key
删除key的过期时间。
使用del key
对key进行删除。
统计键值对的长度strlen key
,索引取值getrange key 开始索引 结束索引
字符串键值对索引从0开始计数,两端都是闭区间。
通过索引修改value的值setrange key 开始索引 新的字符
,追加字符append key 要追加的字符
。
字符串中的数字运算命令:对字符串中的数字加1,如果字符串不存在会进行创建并设置默认初始值为1,格式incr 键名
。使用incrby命令设置自定义加法运算,注意这里区分正负,如果输入的是负数则表示减法运算,命令格式incrby 键名 自定义数字
。自定义浮点数运算incrbyflot 键名 自定义数字
。decr和decryby命令为减法运算。
list列表的增删查改
redis数据库中的list有两种形式,一种是左进另一种是右进,可以理解为数据结构中的栈和队列。0使用lpush key value
以左进的形式创建list列表,使用rpush key value
以右进的形式创建list列表。
查看列表中指定索引区间元素:lrange key 开始区间 结束区间
同样也是闭区间。
list列表的添加命令同创建命令一样都是lpush和rpush。
删除命令有三个:每次执行删除最上面的元素lpop key
,每次执行删除最下面的元素rpop key
。重复元素的删除使用lrem key count 要删除的值
count表示从哪里删除并删除count个元素,count>0表示从头开始搜索,count<0表示从尾部开始搜索,count=0表示全部删除。
使用llen key
命令查看key列表中的元素总个数。
lest key 索引号 新元素
根据提供的索引号将原本list列表中的元素替换成提供的新元素
hash散列的增删改查
redis中的hash散列键值对(key-value)中的value包含两各部分:字段和字段值。
单个散列的创建和查看:hset key value_name value
;使用hmsetnx
创建可以避免被覆盖,hget key
查看key的值
多个散列的创建和查看:hmset key value_name1 value1 value_name2 value2
;同样使用hmsetns
创建可以避免被覆盖,hmget key
查看key的值
查看命令:hkeys key
查看key中所有的value_name;hvals key
查看key中所有的value;hgetall key
查看key中所有的value_name和value。
散列元素的删除:指定删除一个或多个字段 hdel key value_name
。
散列元素的统计:统计字段中散列的元素个数 hlen key
。
散列中的数字运算命令:对散列中的数字加1,如果字符串不存在会进行创建并设置默认初始值为1,格式hincr key
。使用hincrby命令设置自定义加法运算,注意这里区分正负,如果输入的是负数则表示减法运算,命令格式incrby key value_name 自定义数字
。自定义浮点数运算hincrbyflot key value_name 自定义数字
。