1.set 设置值: set name HongWan
2.setnx 如果key存在返回0,不修改。key不存在,新建一个
3.setex设置存活时间。setex haircolor 10 red ,10为存活时间10s
4.setrange设置指定key的子字符串。set num 1234567890
setrange num 3 1234 ===> get num == > 1231234
从下标3的位置开始替换。
5.mset:一次设置多个值。失败会回滚,所有的都设置失败。
6.msetnx:一次设置多个 key 的值,成功返回 ok 表示所有的值都设置了,失败返回 0 表示没有任何值被设置,但是不会覆盖已经存在的 key。
7.get 获取值
8.getset 设置key的值,并返回旧值。如果不存在,返回nil
9、getrange: 获取key的value值的子字符串:getrange name 0 6
获取下标0到6的值,取得到6,开区间。当下标超出字符串长度时,默认同方向最大下标。
10.mget、一次获取多个key值。如果不存在,返回nil
11.incr :对key的值进行加1操作。注意 incr 一个不是 int 的 value 会返回错误,incr 一个不存在的 key,则设置 key 为 1。例 incr age
1、hset 设置hash field为指定值。hset myhash field1 Hello
2、hsetnx 设置 hash field为指定值,如果key不存在,则先创建。如果field存在,返回0。创建失败
3、hmset 同时设置hash的多个field。hmset myhash field1 1 field2 2
4、hget 获取指定的hash field,若field没有,返回nil 。hget myhash field1
5、hmget 获取全部制定的hash filed。hmget myhash field1 field2 field3
6、hincrby 指定的hash filed 加上给定值。
hset myhash field1 10
hincrby myhash field1 -2
hget myhash field1 ==> 8。
如果hash field的值不可转化为整数。则会报(error) ERR hash value is not an integer
7、测试指定的field是否存在。hexists myhash field1。存在为1,不存在为0
8、hlen 返回指定hash的field数量。hlen myhash
9、hdel 删除指定的hash field。hdel myhash field1。返回指定的hash的field数量
10、hkeys 返回hash的所有field。
11、hvals 返回hash的所有value
12、hgetall 获取某个hash中全部的field及value,可以将field以及value全部取出来
list 链表结构。实质是一个双向链表
1、lpush 在key对应list的头部添加字符串元素。lpush mylist ‘hello’
2、rpush 在key对应list的尾部添加字符串元素。rpush mylist2 ‘world’
3、linsert 在key对应list的特定位置之前或之后添加字符串元素。rpush mylist3 ‘hello’ ===> linsert mylist3 before ‘world’ ‘there’ 在world前增加there
4、lset 设置lisy中指定下标的元素值。下标从0开始。rpush mylist4 ‘hello’ ===> lset mylist4 0 ‘hi’
5、lrem 从key对一个list中删除count个和value相同的元素。
count >0 时,按从头到尾的顺序删除。
count < 0 时,按从尾到头的顺序删除。
count = 0 时,删除全部
6、ltrim 保留指定key的值范围内的数据。
7、lrange 查询指定范围的值。lrange mylist 0 -1 查询全部
8、lpop 从list的头部删除元素,并返回删除元素。
9、rpop 从list的尾部删除元素,并返回删除元素。
10、rpoplpush 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值。整个操作时原子的。如果第一个list是空或者不存在返回nil
11、lindex 返回名称为key的list中index位置的元素。
12、llen 返回key对应list的长度。
1、set 的是通过 hash table 实现的,所以添加、删除和查找的复杂度都是 O(1)。
2、sadd 向名称为key的set中添加元素。sadd myset ‘hello’。
添加重复的元素,添加不成功,会返回0。
3、smembers 查看set中所有元素。smembers myset
4、srem删除名称为key的set中的元素member。srem myset ‘hello’
删除成功返回1,失败为0.
5、spop 随机返回并删除名称为key的set中一个元素。spop myset 会随机删除其中的元素。
6、sdiff 返回所有给定key与第一个key的差集。
例: smembers myset2 ===> ‘three’ ‘two’ 。
smembers myset3 ===> ‘two’ ‘one’。
sdiff myset2 myset3 ===>
‘three’
myset2 中于myset3中不同的是three 所以只返回了three 而不是three 和one
7、sdiffstore 返回所有给定key与第一个key的差集,并将结果存为另一个key
sdiffstore myset4 myset2 myset3 会将myset2中的与myset3的差异元素,返回给myset4
8、sinter 返回所有给定key的交集。sinter myset2 myset3 ==> ‘two’
9、sinterstore 返回所有给定key的交集。sinterstore myset5 myset2 myset3 会把交集赋值给myset5
10、sunion 返回所有给定key的并集 sunion myset2 myset3 ==> ‘three’,‘one’,‘two’
11、sunionstore 返回所有给定key的并集,并将结果存为另一个key sunionstore myset6 myset2 myset3
12、smove 从第一个key对应的set中移除member并添加到第二个对应set中
smove myset2 myset5 two
13、scard 返回名称为key的元素个数 scard myset2
14、sismember 测试member是否是名称为key的set的元素。 sismember myset2 two
15、srandmember 随机返回名称为key的set的一个元素,但是不删除元素。
srandmember myset2
1、zadd 向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则通过权重更新元素的顺序。zadd myzset 1 ‘one’ 。数字越小,越靠前
2、zrange 查看key对应的元素。加上withscores可以显示权重。
zrange myzset 0 -1 withscores 显示全部元素和对应的权重。
3、zrem 删除名称为key的zset中的元素member。 zrem myzset two
4、zrank 返回名称为key的zset中member元素的排名,按照score从小到大排序。返回的是下标,从0开始。不是score。zrank myzset3 two
5、zrevrank 返回key对应元素的排名,按照score从大到小的顺序。取得仍旧是下标。
6、zrevrange 返回名称为key的zset按照score从大到小的排序中的index从start到end的所有元素。zrevrange myset3 0 -1 withscores myset3的所有元素和权重
7、zrangebyscore 返回集合中score在给定区间的元素。zrangebyscore myzset3 2 3 withscores 返回score在2 - 3区间的元素。
8、 zcount 返回集合中score 在给定区间的数量。zcount myzset3 2 3 计算score 在2 ~ 3之间的元素数目。
9、zcard 返回集合中元素个数。zcard myzset3 返回数量。
10、zscore 返回给定元素对应的score 。 zscore myzset3 two 取出two对应的权重。
11、zremrangebyrank 删除集合中排名在给定区间中的元素。
zremrangebyrank myzset3 3 3 删除从小到大排序 下标为3的元素
12、zremrangebyscore 删除集合中score在给定区间的元素。
zremrangebyscore myzset3 1 2 删除score在 1~2 之间的元素删除了。