- redis是key-value的数据,所以每个数据都是一个键值对,键的类型是字符串,值得类型分为5种;
- 字符串string
- 哈希hash
- 列表list
- 集合set
- 有序集合zset
- 数据操作的全部命令: http://redis.cn/commands.html
- 一、String (概述:String是redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等)
- 1、设置
- a、设置键值
- set key value
- 示例 : set name sunck set a "liujie is a good man"
- b、设置键值及过期时间,以秒为单位
- setex key seconds value
- 示例 :setex c 10 good (在10s内可以看到good)
- c、设置多个键值
- mset key value [key value ……]
- 示例 :mset a good b nice c hello d xxx
- a、设置键值
- 2、获取
- a、根据键获取值,如果键不存在则返回None(null 0 nil)
- get key
- 示例 :get name
- b、根据多个键获取多个值
- mget key [key ……]
- 示例 :mget a b c
- a、根据键获取值,如果键不存在则返回None(null 0 nil)
- 3、运算(要求:值是字符串类型的数字)
- a、将key对应的值加1
- incr key
- 示例 :incr f
- b、将key对应的值减1
- decr key
- 示例 :decr f
- c、将key对应的值加整数
- incrby key intnum
- 示例 :incrby f 10
- d、将key对应的值加整数
- decrby key intnum
- 示例 :decrby f 10
- a、将key对应的值加1
- 4、其它
- a、追加值
- append key value
- 示例 :apped b ! (给上面键对应的值加上一个!)
- b、获取值长度
- strlen key
- 示例 :strlen b (返回一个数字)
- a、追加值
- 1、设置
- 二、key
- 1、查找键,参数支持正则
- keys pattern
- 示例: keys * (查看所有的键)
- 2、判断键是否存在,如果存在返回1,不存在返回0
- exists key
- 示例: exists a
- 3、查看键对应的value类型
- type key
- 示例: type a
- 4、删除键及对应的值 (返回1表示成功)
- del key [key ……]
- 5、设置过期时间,以秒为单位
- expire key seconds
- 示例: expire a 10 (键为a 的保存10s)
- 6、查看有效时间,以秒为单位
- ttl key
- 示例: ttl a
- 1、查找键,参数支持正则
- 三、hash
- 概述:hash用于存储对象
- {
- name:"tom",
- age:18
- }
- 1、设置
- a、设置单个值
- hset key field value
- 示例: hset p1 name tom
- hset p1 age 18
- b、设置多个值
- hmset key field value [field value ……]
- 示例: hmset p2 name lilei age 20
- a、设置单个值
- 2、获取
- a、获取一个属性的值
- hget key field
- 示例: hget p1 name (获取p1里面的name值)
- b、获取多个属性的值
- hmget key filed [filed ……]
- c、获取所有属性(key)对应的值
- hgetall key
- d、获取所有属性(key)
- hkeys key
- e、获取所有值
- hvals key
- f、返回包含属性的个数
- hlen key
- a、获取一个属性的值
- 3、其它
- a、判断属性是否存在,存在返回1,不存在返回0
- hexists key field
- 示例: hexists p1 name (判断p1里面是否有name属性)
- b、删除属性及值
- hdel key field [field ……]
- c、返回值的字符串长度
- hstrlen key field
- a、判断属性是否存在,存在返回1,不存在返回0
- 概述:hash用于存储对象
- 四、list (概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素)
- 1、设置
- a、在头部插入 (相当与队列 )
- lpush key value [vlaue ……]
- 示例:lpush s1 1 (此时s1中的数据就是1 )
- b、在尾部插入
- rpush key value [vlaue ……]
- 示例:rpush s1 3 (此时s1中的数据就是1 3)
- c、在一个元素的前|后插入新元素
- linsert key before|after pivot value (pivot 就是里面的数据)
- 示例:linsert s1 after 1 4 (此时s1中的数据就是1 4 3)
- d、设置指定索引的元素值
- lset key index value
- 示例 : lset key(s1,,没有测试过) 1 40 (把s1中的4改为40)
- 注意:index从0开始
- 注意:索引值可以是负数,表示偏移量是从list的尾部开始,如-1表示最后一个元素
- a、在头部插入 (相当与队列 )
- 2、获取
- a、移除并返回key对应的list的第一个元素
- lpop key (执行后列表中就没有了)
- b、移除并返回key对应的list的最后一个元素
- rpop key
- c、返回存储在key的列表中的指定范围的元素
- lrange key start end
- 示例: lrange s1 0 -1 ( 获取全部的数据)
- 注意:start end都是从0开始
- 注意:偏移量可以是负数
- a、移除并返回key对应的list的第一个元素
- 3、其它
- a、裁剪列表,改为原集合的一个子集 (原来的集合:1 40 3 1 )
- ltrim key start end
- 示例: itrim s1 0 1 (执行后的集合:1 40)
- 注意:start end都是从0开始
- 注意:偏移量可以是负数
- b、返回存储在key里的list的长度
- llen key
- 示例: llen s1 (2)
- c、返回列表中索引对应的值
- lindex key indexs
- 示例: lindex s1 1 (40)
- a、裁剪列表,改为原集合的一个子集 (原来的集合:1 40 3 1 )
- 1、设置
- 五、set (概述:无序集合,元素类型为String类型,元素具有唯一性,不重复)
- 1、设置
- a、添加元素
- sadd key member [member ……]
- a、添加元素
- 2、获取
- a、返回key集合中所有元素
- smembers key
- b、返回集合元素个数
- scard key
- a、返回key集合中所有元素
- 3、其他
- a、求多个集合的交集
- sinter key [key ……]
- 示例:sinter d1 d2 (求d1,d2中的相同元素)
- b、求多个集合的差集
- sdiff key [key ……]
- c、求多个集合的合集
- sunion key [key ……]
- d、判断元素是否在集合中,存在返回1,不存在返回0
- sismember key member
- 示例: sismemder d1 2 (检查d1中是否含有2)
- a、求多个集合的交集
- 1、设置
- 六、zset
- 概述:
- a、有序集合,元素类型为Sting,元素具有唯一性,不能重复
- b、每个元素都会关联一个double类型的score(表示权重),通过权重的大小排序,元素的score可以相同
- 1、设置
- a、添加
- zadd key score member [score member ……]
- zadd z1 1 a 5 b 3 c 2 d 4 e
- a、添加
- 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
- a、返回指定范围的元素
- 概述: