redis是什么?
redis全称(Remote Dictionary Server 远程字典服务),是一个免费开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。
redis常用的5种数据类型?
String、List、Hash、Set、Zset
redis中数据库默认是多少个db?
redis下,数据库是由一个整数索引标识(从0开始到databases-1),而不是由一个数据库名称。默认情况下,一个redis有16个库(0-15),具体多少个由配置文件指定。
默认情况下,一个客户端连接到数据库0,如下图:
redis常用命令:
/(redis命令参考大全)
Key(键):
- keys * --列出当前库的所有key
- exists key --判断某个key是否存在
- move key db --移除当前库并复制到指定库
- expire key -- 给指定的key设置过期时间(秒钟)
- ttl key --查看还有多少秒过期(-1表示永不过期-2表示已过期)
- type key --查看key是什么数据类型
练习:
String(字符串):
- set/get/del/append/strlen --添加/查询/删除/拼接/长度
- incr/decr/incrby/decrby --自增/自减/按指定值增加/按指定值减少,一定要是数字才能加减
- getrange/setrange --获取指定区间范围内的值/设置指定区间范围内的值,超过字符串长度的自动用x00补齐
- setex(set key expire value)/setnx(set if not exist) --设置key对应的值value,并设置有效期(秒)/如果不存在,则set,存在则不做任何动作
- mset/mget/msetnx --同时设置/获取一个或多个值,msetnx 设置的key都不存在时才成功,反之则失败。
- getset key value --将给定 key 的值设为 value ,并返回 key 的旧值(old value)
练习:
List(列表)
- lpush/rpush key value -- 把值插入到列表头部/尾部
- lrange --返回列表 key 中指定区间内的元素(0 表示列表的第一个元素,-1 最后一个元素, -2 倒数第二个元素)
- lpop/rpop key --返回并删除列表头部/尾部元素
- lindex key index --获取index索引上的值(从上到下)
- llen --链表长度
- lrem key count value:--删除count个value值,count>0从表头删除,count<0从表尾删除 ,count=0全部删除
- ltrim key --开始index 结束index --截取指定范围内的值后重新再赋值给key
- rpoplpush 源列表 目标列表 -- 把源列表的末尾拿出,放到目标列表头部,并返回元素值
- lset key index value --将列表key下标为index的元素的值设置为value.
- linsert key before|after pivot value --将值value插入到列表key当中,位于值 pivot 之前或之后。
练习:
Set(集合)
- sadd key value1 value2 --往集合里面添加元素
- smembers key --获取集合所有的元素
- sismember key value --判断集合是否有某个值
- scard key --返回集合元素的个数
- srem key value --删除集合某个元素
- srandmember key --随机取一个元素
- spop key --返回并删除集合中1个随机元素
- smove key1 key2 value --将key1中的某个值赋值给key2
- sdiff/sinter/sunion --差集/交集/并集
练习:
Hash(哈希)
key-value模式不变,但value是一个键值对
- hset/hget/hmset/hmget/hgetall/hdel --一个或多个设置/获取/删除值
- hlen --返回hash的field数量
- hexists myhash field --验证field是否存在
- hkeys/hvals -- 返回hash所有的field/value
- hincrby/hincrbyfloat --给hash中的filed加上指定的值/指定的浮点数
- hsetnx hash field value --不存在的情况下设置hash的field为value,存在不做任何操作
练习:
Zset(有序集合)
在set基础上,加一个score值
- zadd --添加元素/获取指定区间内的元素(score可选)
- zrangebyscore/zrevrangebyscore key min max [withscores] [limit offset count] --返回有序集key中,所有score值(升序/降序排列)介于min和max之间的成员, limit参数指定返回结果的数量及区间,如mysql的limit 。
- zrem key member[member...] --移除有序集key中的一个或多个成员,不存在的成员将被忽略。
- zcard/zcount/zscore --返回集合元素的个数/返回score区间内元素数量/返回有序集key中,成员member的score值。
- zrevrank/zrank --查询member的排名降序/升序
- zrevrange/zrange key start stop [withscore] --获取指定区间内的元素(按score降序/升序排列)[score可选]
练习:
以上就是5种常见数据类型的常见使用命令。