redis入门
概述
首先redis是一个基于内存的key-value型数据库。
例如
key | value |
---|---|
id | 1 |
name | sfes |
-
基于内存存储,读写性能高
-
适合存储一些热点数据(热点商品,新闻等),也就是说一些在短时间内有大量用户访问的数据
命令行
服务端启动命令
redis-server.exe redis.windows.conf
客户端启动命令
redis-cli.exe //不带参数启动
redis-cli.exe -h localhost -p 6379 -a password
//-h指定IP -p指定端口号 -a指定密码
查询里边有哪些数据
keys *
redis常用数据类型
-
字符串string
-
哈希hash
-
列表list
-
集合set
-
有序集合 sorted set/zset
字符串
普通字符串,redis中最简单的数据类型
哈希hash
也叫散列,类似于java中的hashmap,基本就有点面向对象的思想了
列表
按照插入顺序进行排序,里边可以有重复元素
集合
无序集合,没有重复元素
有序集合
集合中每个元素关联一个分数(score),根据分数升序排序,没有重复元素
redis常用命令
插入数据要看数据类型,不同的数据类型的插入命令也是不一样的。
字符串操作命令
插入
set key value //这是格式
比如我要插入一个名字是sfes
set name sfes
取值
get key
比如我要把刚才插入的取出来
get name
插入的同时指定过期时间
最简单的应用场景就是获取验证码,比如获取的验证码有效期是1分钟,就可以给他设置一分钟的过期时间
setex key seconds value//格式 set code 60 1234//实例
当某个key不存在的时候再去设置他的值
setnx key value
哈希操作命令
hash是一个string类型的field和value的映射表,适合存储对象
hset key field value //将哈希表中key中字段field的值设置为value hget key field // 取出哈希表中key中字段field的值 hdel key field // 删除哈希表中key中的field字段 hkeys key //获取哈希表中key的所有字段 hvals key // 获取哈希表中key的所有值
列表操作命令
redis列表是最简单的字符串列表,按照插入的顺序进行排序。
lpush key value1 [value2] //从左侧插入数据 lrange key start stop //获取列表中指定范围内的元素 rpop key// 移除并获取列表的最后一个元素 llen key // 获取列表长度 //给mylist插入三个数据a b c lpush mylist a b c lrange mylist 0 -1 //获取列表中所有元素
集合操作命令
redis中的set是string类型的无序集合,集合成员是唯一的,不重复
sadd key member1 [member2]//向集合中插入一个或多个元素 smembers key //返回集合中的所有成员 scard key //获取集合中成员数量 sinter key1 [key2] //返回给定集合的交集 sunion key1 [key2] //返回给定集合的并集 srem key member1 [member2] //删除集合中的一个或多个元素
有序集合操作命令
redis中的有序集合是string类型元素的集合,不允许有重复元素,每个元素会关联一个double类型的分数。
zadd key score1 member1 [score2 member2]//向有序集合中添加一个或多个元素 zrange key start stop[withscores]//返回指定区间的元素[要不要带上分数] zincrby key increment member //有序集合中对指定成员的分数加上increment zrem key member [member...] //移出集合中一个或多个元素
通用命令
redis通用命令就是不分数据类型都可以使用的命令
keys pattern //返回能匹配到pattern的key exists key //返回key是否存在 type key //返回key的类型 del key //删除某个key