1、string
string是redis最基本的类型,一个key对应一个value
string可以包含任何数据,最大不能超过512M
通过上章的介绍使win和ubantu连接同一个redis服务器,用win来输入命令,ubantu来检查命令
①set key value:设置值
②get key:获取值
③mset key value key value:设置多个值
④mget key1 key2…:获取多个值
⑤append key value:添加字段返回的是字符串长度。可以直接添加数字python中字符串和数字不能直接追加
⑥del key1 key2…:删除
⑦strlen key:返回字符串长度,太显而易见不截图了
⑧expire key second:设置键的有效时间key必须存在(验证码的有效时间)
⑨setex key seconds value:添加键并且设置有效时间
incr key:给key值加1
decr key:给key值减1
incrby key increment:给key增加指定值
decrny key decrement:给key减少指定值
getrange key start end:获取指定区间范围内的值,类似between…and的关系类似于切片但他是双闭合
setrange key offset value:代表从第几位开始替换,下脚标从零开始
从0 -1表示全部
help @string:可以显示所有string的命令
redis中string的应用场景:共享session信息,在服务器中保存用户的登录状态的信息
2、list
通过vim编辑文件时可以通过esc+(:/输入自己想要查找到内容按键盘n即next可以查找想要搜索的内容)
①lpush key value[value]:从左边往列表中添加值,取得时候类似于栈,先进后出
②lrange key start stop:将key中的数据取出,要指定开始和结束,类似于切片,不同的是他是双闭合区间取值,他不改变原列表
③rpush key value [value]:从右边往列表中添加值,取得时候类似于队列先进先出
④lpop/rpop key:从左往右删除/从右往左删除一个元素
⑤lindex key index:按照下标索引取值,如果超过列表索引不会报错,会返回nil代表空
⑥llen key:求列表长度
⑦lrem key count value:删除指定个数的指定key中的指定元素
count>0:表示表头开始向表尾搜索删除
count<0:表示表尾开始向表头搜索删除
count=0:表示删除所有的value
rem 1 2 4:代表在1这个列表之中删除2个4,删除的顺序是从表头开始删除的
⑧ltrim key start stop:将key中的数据取出,要指定开始和结束,类似于切片,不同的是他是双闭合区间取值,他改变了原列表
⑨lset key insex value:将指定列表中的元素替换
⑩linsert key before|after pivot value:在某个元素之前/之后插入一个元素,从表头开始查找,查找到了插入
应用场景
3、hash
hash是一个键值对集合
hash是一个string类型的field和value的映射表,hash特别适合存储对象
①hset key field value:创建一个名为hash的字段为field的值为value的表
②hget key field:通过hash表的key与字段取值
③hmset key field value[field value]/hmget key field value[field value]/:多写多取
④hgetall key:会把hash表中所有的数据取出
⑤hdel key field [field]
⑥hlen key/hexists key field:查看hash的长度,查看hash的字段是否存在
⑦:hkeys key/hvals key:返回所有的field字段/返回所有字段的值
⑧hincrby key field increment:给指定字段的值自增指定量,如果不存在,创建后在自增,初始创建量为增量
应用场景:商城中的购物车,key是用户的唯一标识,通过存储数据的id得到数据的具体信息
4、set无序集合
set是string类型的无序集合(不重复的)
①sadd key meber[meber]:创建并且添加值,通过smembers key查看
②sismember key member:判断集合中某成员在不在key中在1不在0
③scard key:获取集合里面元素的个数,如果没有则返回0
④srem key member [member]:删除key中的mumber可删除多个,只会删除已有的,如果没有不报错
⑤srandmember key [count]:随机出count个数,不写默认出一个,不修改原集合
⑥spop key [count]:删除原集合的元素
⑦smove source destination member:把source里面的member移动到destination中,类似于剪切,如果没有目标集合则自动帮忙创建一个
sadd set01 1 2 3 4 5
sadd set02 1 2 3 a b
差集
sdiff set01 set02 返回 4 5 在第一个set中不在第二个set中
交集
sinter set01 set02 返回 1 2 3
并集
sunion set01 set02 返回set01 set02 中的值 去掉重复
应用场景:微博关注、中奖名单,保证不会重复
5、zset有序集合
他会按照数字给定的大小由小到大进行排序如果字段相同则覆盖,如果值相同则按照进栈顺序从表头开始排序
①zadd key score member [score member]:向zset中存数据
②zrange key start stop [withscorces:携带分数]:查看key中的内容
③zrangebyscore key min max [withscores显示分数]limit 1 2:根据最小最大区间取值,取到的值从第一个开始截取截取两个
左边加括号表示不包含的意思,右边不能加,
④zrem key member [member]:删除字段
⑤zcrad key/zcount key min max: 求key总条数/求key中min-max个数
⑥zrank key member :返回对应元素的小角标
应用场景:做排序,成绩排名等