提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Redis是由意大利人Antirez开发的,默认端口为6379(据说是由9宫格MERZ的位置决定的,在Antirez朋友圈动态中是愚蠢的代名词)
本文主要介绍redis的5种数据结构和简单的命令
一、String字符串
String是redis最简单的数据结构,内部表示就是一个字符数组。通过唯一的key,来获取对应的value。
设值
命令格式: set key value
示例:set name lihua // 等价于String name=lihua;
获取
命令格式:get key
示例:get name
是否存在
命令格式:exists key
示例:exists name --存在返回1
删除
命令格式:del name
示例:del name
批量设值
命令格式:mset key1 value1 key2 value2
示例:mset name lihua school xx小学
批量获取
命令格式:mget key1 key2
示例:mget name school
设置过期时间
命令格式:EXPIRE key 时间
示例:EXPIRE name 5
设值并设定过期时间
命令格式:setex key 过期时间 value
示例:setex name 5 lihua
不存在则创建否则失败
命令格式:setnx key value
示例:setnx name lihau
2.list列表
list列表相当于Java中的LinkedList,插入删除快,索引慢,可以当做异步队列使用
设值
命令格式: rpush key element1 element2
示例:rpush name lihua zhangsan
获取list大小
命令格式:llen key
示例:llen name
取出元素
命令格式:lpop key
示例:lpop name 先进先出
命令格式:rpop key
示例:rpop name 后进先出
获取指定位置的元素
命令格式:lindex key index位置(可为负数,倒着数第一个-1)
示例:lindex name 1
获取一定区间的元素
命令格式:lrange key begin end
示例:lrange name 0 1
删除
命令格式:ltrim key begin end
示例:ltrim name 0 1
3.hash字典
hash字典相当于Java中的hashmap
设值
命令格式: hset key element1 value1 element2 value2
示例:HSET test name lihua sex nan
获取
命令格式:hget key element1
示例:hget test name
获取全部元素
命令格式:hgetall key
示例:hgetall test
大小
命令格式:hlen key
示例:hlen test
4.set集合
set集合相当于Java中的hashset,元素无序唯一
设值
命令格式: sadd key element1 element2
示例:sadd name lihua zhangsan
获取大小
命令格式:scard key
示例:scard name
判断元素是否存在
命令格式:sismember key element1
示例:sismember name lihua 存在返回1
获取元素
命令格式:smember key
示例:smember name
删除某个set数据中的元素
命令格式: srem key element1
示例: srem name lihua
5.zset有序列表
zset和set,元素都是唯一,只不过有个score分数,进行排序
设值
命令格式: zaddkey element1 element2
示例:zadd name lihua zhangsan
获取大小
命令格式:zcard key
示例:zcard name
按score排序列出
命令格式:zrange key start stop
示例:zrange name 0 2
按score逆反序列出
命令格式:zrevrange key start stop
示例:smember name 0 2
查分
命令格式:zscore key element
示例:zscore name lihua
删除元素
命令格式: zrem key element1
示例: zrem name lihua
获取排名
命令格式: zrank key element1
示例: zrank name lihua
总结
以上就是今天要讲的内容,本文仅仅简单介绍了5种数据结构的简单使用。