redis是key-value的数据,所以每个数据都是一个键值对。
键的类型:字符串
值的类型分为五种:字符串string、哈希hash、列表list、集合set、有序集合zset
redis命令: http://redis.cn/commands.html
一、string类型:
string类型,最大可以存储512MB的数据,是二进制安全的,即可以存储任何数据,如数字、图片、序列化对象等。
1.设置
1).设置键值:set key value
示例: set name "jerry" 或者 set name jerry
2).设置键值及过期时间,以秒为单位: setex key seconds value
3).设置多个键值: mset key value [key value.........]
2.获取
1).根据键获取值,如果键不存在则返回null:get key
2).根据多个键获取多个值:mget key [key......]
3.运算
要求:值是字符串类型的数字
1).将key对应的值加1:incr key,返回加后的值
2).将key对应的值减1:decr key,返回减后的值
3).将key对应的值加整数:incrby key intnum,返回加后的值
4).将key对应的值减整数: decrby key intnum,返回减后的值
4.其它
1).追加值:append key value,返回长度
2).获取值长度:strlen key
二、key键操作:
1).查找键,支持正规:keys pattern
示例:keys *
2).判断键是否存在:存在返回1,不存在返回0
示例:exists 键
3).查看键对应的value的类型:type 键
4).删除键,可以删除多个键:del 键 [键..........]
5).设置过期时间,以秒为单位: expire key seconds
6.查看有效剩余时间,以秒为单位:ttl 键
三、hash类型
hash类型的值:用于存储对象
如:{"name": "jerry", "age":18}
1.设置
a.设置单个值:hset key field value
b.设置多个值:hmset key field value [ field value.........]
示例: hmset userinfo name tom age 18
2.获取
a、获取一个属性的值:hget key field
示例: hget userinfo age
b、获取一个属性的值:hmget key field [ field...........]
示例:hget userinfo age name
c.获取所有属性和值:hgetall key
示例:hgetall userinfo
d.获取所有属性:hkeys key
示例:hkeys userinfo
e.获取所有值: hvals key
示例:hvals userinfo
f.返回包含键值对的个数:hlen key
示例:hlen userinfo
3.其它
a.判断某属性是否存在,存在返回1,不存在返回0:hexists key field
示例: hexists userinfo age
b.删除属性及值,可以删除多个属性及值:hdel key field [field......]
c.返回值的字符串长度:hstrlen key field
四、list类型:
列表的元素类型为string,按照插入顺序排序;在列表的头部或尾部添加元素。
1.设置
a.头部插入元素: lpush key value [value.......]
b.尾部插入元素:rpush key value [value.....]
c.在一个元素的前或后插入元素:linsert key before或after 原来的元素 新的元素
d.设置指定索引的元素值: lset key index value
注意:index 从0开始,可以为负数。
2.获取
a.移除并返回key对应的list的第一个元素:lpop key
b.移除并返回key对应的list的最后一个元素:rpop key
c.返回存储在key的列表中的指定范围的元素:lrange key start end
3.其它
a.剪切列表,保留剪切,移除未剪切的元素:ltrim key start end
b.返回存储在key里的list的元素个数:llen key
c.返回列表中索引对应的值
五、set类型:
set类型:无序集合,元素类型为string类型,元素不重复。
1.设置
添加元素:sadd key member [member..........]
2.获取
a.返回key集合中,所有元素:smembers key
b.返回集合元素个数: scard key
3.其它
a.求多个集合的交集: sinter key [key..........]
示例: sinter s1 s2
b.求多个集合的差集: sdiff key [key........]
c.求多个集合的合集: sunion key [key......]
d.判断元素是否在集合中;存在返回1,不存在返回0:sismember key member
六、zset类型:
zset类型:有序集合,元素类型为string类型,元素不重复。每个元素都会关联一个double类型的score(权重),通过权重的大小排序;元素的score可以相同。
1.设置
a.添加:zadd key score member [score member..........]
2.获取
a.返回指定范围内的元素:zrange key start end
b.返回元素个数:zcard key
c.返回有序集合key中,score在min和max之间的元素个数:zcount key min max
d.返回有序集合key中,成员member的score值:zscore key member