- string类型
- set/get 最常见也是最简单的操作.key value 键值对;
- 192.168.159.130:7000> set num 1
- OK
- 192.168.159.130:7000> get num
- "1"
- 192.168.159.130:7000> get age
- (nil)
- setnx 同set 区别在于 如果key值存在,不覆盖返回0, 如果key值不存在,设置值.并且返回1(nx not exist)
- 192.168.159.130:7000> setnx num 1
- (integer) 0
- 192.168.159.130:7000> get num
- "1"
- 192.168.159.130:7000> setnx age 1
- (integer) 1
- 192.168.159.130:7000> get age
- "1"
- setex 同set 区别在于可以给数据加一个失效时间. set key 时间 value
- 192.168.159.130:7000> setex num 5 1
- OK
- 192.168.159.130:7000> get num
- "1"
- 192.168.159.130:7000> get num
- "1"
- 192.168.159.130:7000> get num
- (nil)
- setrange 同set 可以替换value值 setrange key 要替换的开始索引 替换的值 替换的长度取决于替换值的长度.长度不够,原值补充
- 192.168.159.130:7001> set name helloworld
- OK
- 192.168.159.130:7001> SETRANGE name 1 t
- (integer) 10
- 192.168.159.130:7001> get name
- "htlloworld"
- 192.168.159.130:7001> setrange name 0 helloworld
- (integer) 10
- 192.168.159.130:7001> get name
- "helloworld"
- mset 同set 一次设置多个值(特点要么全部成功,要不全部失败) set key1 value1 key2 value2 ... 这里不做演示(因为我的环境是redis集群,设置多个值的时候,redis有可能会报CROSSSLOT Keys in request don't hash to the same slot 异常.原因请看下一篇关于redis的文章)
- getset 同set 只不过会返回key的原值 没有返回nil
- 192.168.159.130:7000> getset age 1
- "2"
- 192.168.159.130:7000> getset age 2
- "1"
- 192.168.159.130:7000> getset take 2
- (nil)
- 192.168.159.130:7000> getset take 1
- "2"
- getrange 获取值的一部分 getrange key 开始索引 结束索引
- 192.168.159.130:7001> GETRANGE name 0
- (error) ERR wrong number of arguments for 'getrange' command
- 192.168.159.130:7001> GETRANGE name 0 4
- "hello"
- 192.168.159.130:7001> GETRANGE name 0 18
- "helloworld"
- mget 同 get 特点是一次后去多个 key 锁对应的值. mget key1 key2 ... 这里不做演示.原因同mset
- incr 增加对应key 的value值 incr key 返回增加后的value值
- 192.168.159.130:7001> get name
- "helloworld"
- 192.168.159.130:7001> INCR name
- (error) ERR value is not an integer or out of range
- 192.168.159.130:7001> set name 1
- OK
- 192.168.159.130:7001> INCR name
- (integer) 2
- incrby 同incr 特点是可以根据你给定的值 增加key对应的value值.如果key值不存在直接设置key值(incr 也相同)
- 192.168.159.130:7003> get student
- (nil)
- 192.168.159.130:7001> INCRBY student 10
- (integer) 10
- 192.168.159.130:7001> get student
- "10"
- 192.168.159.130:7001> INCRBY student 2
- (integer) 12
- decr 和decrby 这里不做介绍.同incr
- append 相当于java中的 stringbuffer 里的append方法 .向后追加字符串
- 192.168.159.130:7001> set name aa
- OK
- 192.168.159.130:7001> get name
- "aa"
- 192.168.159.130:7001> APPEND name bb
- (integer) 4
- 192.168.159.130:7001> get name
- "aabb"
- strlen 获取对象key的value值长度
- 192.168.159.130:7001> get name
- "aabb"
- 192.168.159.130:7001> strlen name
- (integer) 4
- 192.168.159.130:7001> set name 1
- OK
- 192.168.159.130:7001> STRLEN name
- (integer)
2.HASH字典类型
- hset key field value(设置或者新增对象的一个属性),hget key field (获取对象的单个属性值),hsetnx(同string类型的setnx 设置属性值 如果有值则不执行)
- 192.168.159.130:7000> hset person age 10
- (integer) 1
- 192.168.159.130:7000> hget person age
- "10"
- 192.168.159.130:7000> hsetnx person age 5
- (integer) 0
- 192.168.159.130:7000> hsetnx person sex 1
- (integer) 1
- 192.168.159.130:7000> hget person sex
- "1"
- hmset key field1 value1 field2 value2...(批量设置对象属性),hmget key field1 field2..(批量获取对象属性值),hgetall key(获取对象所有的属性以及属性值)
- 192.168.159.130:7001> hmset person name xiaoming age 5 sex 1
- OK
- 192.168.159.130:7000> hmget person name age sex
- 1) "xiaoming"
- 2) "5"
- 3) "1"
- 192.168.159.130:7000> hgetall person
- 1) "name"
- 2) "xiaoming"
- 3) "age"
- 4) "5"
- 5) "sex"
- 6) "1"
- hexists key field(判断是否属性是否存在),hlen key(返回对象属性条数),hdel key field( 删除指定属性),hkeys key (返回对象所有属性名),hvals key(返回对象所有属性值)
- 192.168.159.130:7000> HINCRBY person sex 1
- (integer) 2
- 192.168.159.130:7000> HEXISTS person hobby
- (integer) 0
- 192.168.159.130:7000> hlen person
- (integer) 3
- 192.168.159.130:7000> hkeys
- (error) ERR wrong number of arguments for 'hkeys' command
- 192.168.159.130:7000> hkeys person
- 1) "name"
- 2) "age"
- 3) "sex"
- 192.168.159.130:7000> hvals person
- 1) "xiaoming"
- 2) "5"
- 3) "2"
- 192.168.159.130:7000> hdel person sex
- (integer) 1
- 192.168.159.130:7000> hget person sex
- (nil)
3.LIST 队列数据类型
- lpush key value1 value2 ...(从头部依次插入数据),rpush key value1,value2..(从尾部依次插入数据),lrange key 开始索引 结束索引 (查询指定索引范围内的元素 0 -1标示全部)
- 192.168.159.130:7000> LPUSH mylist a
- -> Redirected to slot [5282] located at 192.168.159.130:7001
- (integer) 1
- 192.168.159.130:7001> lpush mylist b
- (integer) 2
- 192.168.159.130:7001> LRANGE 0 -1
- (error) ERR wrong number of arguments for 'lrange' command
- 192.168.159.130:7001> LRANGE mylist 0 -1
- 1) "b"
- 2) "a"
- 192.168.159.130:7001> rpush mylist c
- (integer) 3
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "a"
- 3) "c"
- linsert key value before/after 待插入值 (在指定值的前后插入值)
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "a"
- 3) "c"
- 192.168.159.130:7001> linsert mylist before a d
- (integer) 4
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "d"
- 3) "a"
- 4) "c"
- 192.168.159.130:7001> linsert mylist after a e
- (integer) 5
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "d"
- 3) "a"
- 4) "e"
- 5) "c"
- lset key 位置 value(替换自定位子的值)
- 192.168.159.130:7000> lset mylist 1 f
- OK
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "f"
- 3) "a"
- 4) "e"
- 5) "c"
- lrem key 个数 value(删除队列中值为value的元素,个数为正数从头开始删除,个数为负数从尾部开始删除,个数为0全部删除
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "a"
- 3) "b"
- 4) "a"
- 5) "a"
- 6) "b"
- 7) "f"
- 8) "a"
- 9) "e"
- 10) "c"
- 192.168.159.130:7001> lrem mylist 1 a
- (integer) 1
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "b"
- 3) "a"
- 4) "a"
- 5) "b"
- 6) "f"
- 7) "a"
- 8) "e"
- 9) "c"
- 192.168.159.130:7001> lrem mylist -1 a
- (integer) 1
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "b"
- 3) "a"
- 4) "a"
- 5) "b"
- 6) "f"
- 7) "e"
- 8) "c"
- 192.168.159.130:7001> lrem mylist 0 b
- (integer) 3
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "a"
- 2) "a"
- 3) "f"
- 4) "e"
- 5) "c"
- ltrim 保留指定范围内数据 成功返回ok
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "a"
- 2) "a"
- 3) "f"
- 4) "e"
- 5) "c"
- 192.168.159.130:7001> ltim mylist 1 2
- (error) ERR unknown command 'ltim'
- 192.168.159.130:7001> ltrim mylist 1 2
- OK
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "a"
- 2) "f"
- llen 返回list个数
- 192.168.159.130:7001> ltrim mylist 3 7
- OK
- 192.168.159.130:7001> lrange mylist 0 -1
- (empty list or set)
- 192.168.159.130:7001> llen mylist
- (integer) 0
- lpop 和rpop 前者是从头部弹出一个数据 后者是从尾部弹出一个数据
- 192.168.159.130:7001> lpop mylist
- (nil)
- 192.168.159.130:7001> lpush mylist a
- (integer) 1
- 192.168.159.130:7001> lpush mylist b
- (integer) 2
- 192.168.159.130:7001> lrange mylist 0 -1
- 1) "b"
- 2) "a"
- 192.168.159.130:7001> rpop mylist
- "a"
- lindex (返回指定索引的数据) rpoplpush(弹出前一个list尾部数据 压入后一个list头部,这个方法如果集群也不适合)
- 192.168.159.130:7001> lindex mylist 1
- (nil)
- 192.168.159.130:7001> lindex mylist 0
- "b"
- sadd 新增元素 smembers 显示所有元素
- 192.168.159.130:7003> sadd myset a
- -> Redirected to slot [560] located at 192.168.159.130:7000
- (integer) 1
- 192.168.159.130:7000> smembers myset
- 1) "a"
- srem 删除 spop 随机弹出一个元素
- 192.168.159.130:7000> sadd myset c d e f g
- (integer) 5
- 192.168.159.130:7000> smembers myset
- 1) "c"
- 2) "g"
- 3) "a"
- 4) "d"
- 5) "e"
- 6) "b"
- 7) "f"
- 192.168.159.130:7000> srem myset a
- (integer) 1
- 192.168.159.130:7000> smembers myset
- 1) "g"
- 2) "d"
- 3) "e"
- 4) "c"
- 5) "b"
- 6) "f"
- 192.168.159.130:7000> spop myset
- "d"
- sdiff 差集 sinter交集 sunion 并集 sinterstore 取交集并存储到另一个集合中 sunion 取并集并储存到另一个集合中
这里因为我用的是集群式redis 对上述命令不支持.所以不进行演示. 并集交集 用的很少缺很经典 比如 qq共同好友 好友迁移之类
- smove (移动一个集合的元素到另一个集合) scard(返回集合元素数量)
- 192.168.159.130:7002> SMOVE myset myset1 *
- (error) CROSSSLOT Keys in request don't hash to the same slot
- 192.168.159.130:7002> SMOVE myset myset1 a
- (error) CROSSSLOT Keys in request don't hash to the same slot
- 192.168.159.130:7002> scard myset
- -> Redirected to slot [560] located at 192.168.159.130:7000
- (integer) 5
- 192.168.159.130:7000>
- sismember 判断集合中是否有这个元素 srandmember 随机返回集合中的一个元素
- 192.168.159.130:7000> sismember myset a
- (integer) 0
- 192.168.159.130:7000> sismember myset b
- (integer) 1
- 192.168.159.130:7000> srandmember myset
- "b"
- 192.168.159.130:7000> srandmember myset
- "f"
- zadd 添加元素 zrange 显示元素 (withscore带分数)
- 192.168.159.130:7000> zadd myzset a
- (error) ERR wrong number of arguments for 'zadd' command
- 192.168.159.130:7000> zadd myzset 1 a
- (integer) 1
- 192.168.159.130:7000> zadd myzset 3 a
- (integer) 0
- 192.168.159.130:7000> zadd myzset 3 b
- (integer) 1
- 192.168.159.130:7000> zadd myzset 2 c
- (integer) 1
- 192.168.159.130:7000> zrange 0 -1
- (error) ERR wrong number of arguments for 'zrange' command
- 192.168.159.130:7000> zrange myzset 0 -1
- 1) "c"
- 2) "a"
- 3) "b"
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "c"
- 2) "2"
- 3) "a"
- 4) "3"
- 5) "b"
- 6) "3"
- 192.168.159.130:7000> zadd myzset 1 a
- (integer) 0
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "a"
- 2) "1"
- 3) "c"
- 4) "2"
- 5) "b"
- 6) "3"
- zrem 删除集合中对应元素 zincrby 增加对应元素分数 如果元素不存在对应添加元素
- 192.168.159.130:7000> zrem myzset a
- (integer) 1
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "c"
- 2) "2"
- 3) "b"
- 4) "3"
- 192.168.159.130:7000> zincrby myzset 5 a
- "5"
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "c"
- 2) "2"
- 3) "b"
- 4) "3"
- 5) "a"
- 6) "5"
- 192.168.159.130:7000> zincrby myzset 3 b
- "6"
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "c"
- 2) "2"
- 3) "a"
- 4) "5"
- 5) "b"
- 6) "6"
- zrank 返回元素位子 zrevrank 返回元素位子(逆序)
- 192.168.159.130:7000> zrange myzset 0 -1 withscores
- 1) "c"
- 2) "2"
- 3) "a"
- 4) "5"
- 5) "b"
- 6) "6"
- 192.168.159.130:7000> lrank myzset a
- (error) ERR unknown command 'lrank'
- 192.168.159.130:7000> zrank myzset a
- (integer) 1
- 192.168.159.130:7000> zrank myzset c
- (integer) 0
- 192.168.159.130:7000> zrank myzset b
- (integer) 2
- 192.168.159.130:7000> zrevrank myzset a
- (integer) 1
- 192.168.159.130:7000> zrevrank myzset c
- (integer) 2
- zrevrange 返回逆序排序的元素 zrangebyscore 根据给定的分数区间查询元素
- 192.168.159.130:7000> zrevrange myzset 0 -1
- 1) "b"
- 2) "a"
- 3) "c"
- 192.168.159.130:7000> zrevrange myzset 0 -1 withscores
- 1) "b"
- 2) "6"
- 3) "a"
- 4) "5"
- 5) "c"
- 6) "2"
- 192.168.159.130:7000> zrangebyscore myzset 0 5
- 1) "c"
- 2) "a"
- 192.168.159.130:7000> zrangebyscore myzset 0 5 withscores
- 1) "c"
- 2) "2"
- 3) "a"
- 4) "5
- zcount 返回分数区间元素个数
- 192.168.159.130:7000> zcount myzset 0 8
- (integer) 3
- 192.168.159.130:7000> zcount myzset 0 2
- (integer) 1
- 192.168.159.130:7000> zcount myzset 0 1
- (integer) 0
- 192.168.159.130:7000> zcount myzset 0 -1
- (integer) 0
- zcard 获取集合中元素数量 zremrangebyrank 根据排名删除 zremrangebyscore 根据分数区间删除
- 192.168.159.130:7001> zremrangebyrank myzset 0 1
- -> Redirected to slot [1515] located at 192.168.159.130:7000
- (integer) 2
- 192.168.159.130:7000> zrange 0 -1
- (error) ERR wrong number of arguments for 'zrange' command
- 192.168.159.130:7000> zrange myzset 0 -1
- 1) "b"
- 192.168.159.130:7000> ZREMRANGEBYSCORE myzset 0 3
- (integer) 0
- 192.168.159.130:7000> ZREMRANGEBYSCORE myzset 0 7
- (integer) 1
==============================================================================================================
redis 数据类型 的命令以及范例 写完了 .希望能帮到大家.下一篇关于redis的博文 是redis的接口类 jedis API剖析