redis 一共分为五中基本数据类型:String、Hash、List、Set、Zset,本文只对这五中类型进行基本介绍,罗列一些经常使用的命令。redis
1)set hello world 数据库
设置一个键为 hello,值为world的存储,设置成功返回OK,屡次设置则会覆盖app
2)get hellospa
读取键为hello的值,若获取不到则返回(nil)code
3)del hello对象
删除hello这个键值对排序
4)setnx hello world索引
这里的nx=not exist,若是hello键不存在,建立并复制为world,返回1;若是存在,则不会覆盖,返回0three
5)s1etex hello 10 world队列
这里的ex=expired,设置hello的值为world,而且有效期为10秒,若是hello键存在,则覆盖原有的,不存在则建立。
10秒内键值对存在有效,10秒后则自动消失,此时若是get hello,返回结果是nil。
6)setrange hello 1 O
此命令表示:setrange key offset value,即将key为hello的字符串的第1位换成O,注意从0开始计数
如:set hello world;执行如上命令后,get hello -> wOrld。
7)批量设置命令
mset key1 1key2 2key3 3;批量设置值;
对应的mget key1 key2 key3,批量获取值,也有msetnx和mget方法;
8)getset k1 v1
表示先取值,后复制,即返回结果为原来的k1值,而后将k1的值换为v1,过程以下
127.0.0.1:6379> get k1 (nil) 127.0.0.1:6379> getset k1 111 (nil) 127.0.0.1:6379> get k1 "111"
9)其余命令
incr和decr方法:对某一个值进行递增和递减
(注:包括incr在内的全部redis命令都是原子操做,不管多少个客户端同时链接,都不会出现累加丢失的状况)
incrby和decrby方法:对某个值进行指定长度的递增和递减
append [key]方法:字符串追加方法
strlen [key]方法:获取字符串的长度
1)hset user age 12
hset是hash集合,user是集合名字 age是字段名 12为其值
hset user name Tom
同一集合能够有多个字段,
2)hget user age -> 12
获取集合中某个字段的值
3)hmset能够进行批量存储多个键值对:hmset user sex man addr beijing,也可以使用hmget进行批量获取多个键值对。
4)其他命令
一样也有hsetnx,和setnx大同小异。
hincrby和 hdecrby 集合递增和递减
hexists 是否存在key 若是存在返回 不存在返回0
hlen 返回hash集合里的全部的键数值
hdel 删除指定hash的field
hkeys 返回hash里全部的字段
hvals 返回hash的全部value
hgetall 返回hash里全部的key和value
1)lpush
从头部加入元素(栈) 先进后出
lpush list1 "hello"
lpush list1 "world"
2)rpush
从尾部加入元素(队列) 先进先出
rpush list2 "1"
rpush list2 "2"
3)linsert
插入元素
linsert list3 before [集合的元素] [插入的元素]
4)取值
lrange list1 0 -1 (表示从头取到末尾)
127.0.0.1:6379> lpush list3 "one" "two" (integer) 2 127.0.0.1:6379> lrange list3 0 -1 1) "two" 2) "one" 127.0.0.1:6379> linsert list3 before "one" "three" (integer) 3 127.0.0.1:6379> lrange list3 0 -1 1) "two" 2) "three" 3) "one"
5)替换元素——lset
lset list1 0 "A" , 把第0个元素替换为A
6)删除元素
lrem list3 1 “two” ,删除一个two元素
ltrim方法: 保留指定key的值范围内的数据
lpop方法:从list的头部删除元素,并返回删除元素
rpop方法:从list的尾部删除元素,并返回删除元素
7)其余命令
rpoplpush方法: 第一步从尾部删除元素,而后第二步并从头部加入元素
lindex方法: 返回名称为key的list中 index位置的元素
llen方法:返回元素的个数
存储内容 |
集合类型(Set) |
列表类型(List) |
有序性 |
否 |
是 |
惟一性 |
是 |
否 |
1)添加、查看元素
sadd ,smembers
127.0.0.1:6379> sadd set1 aaa (integer) 1 127.0.0.1:6379> smembers set1 1) "aaa"
2)删除元素
srem 删除方法:srem set1 aaa //删除aaa元素
spop随机删除方法:spop set1 //随机删除某个元素,返回删除的key
3)集合之间的比较操做
sdiff方法: 返回俩个集合的不一样元素(哪一个集合在前面就以哪一个集合为标准)
sdiffstore方法: 将返回的不一样元素存储到另一个集合里
127.0.0.1:6379> smembers set1 1) "bbb" 2) "aaa" 3) "ddd" 4) "ccc" 5) "eee" 127.0.0.1:6379> smembers set2 1) "eee" 2) "aaa" 3) "ff" 4) "ccc" 127.0.0.1:6379> sdiffstore set3 set1 set2 (integer) 2 127.0.0.1:6379> smembers set3 1) "bbb" 2) "ddd"
sinter方法:返回集合的交集
sinterstroe方法: 返回交集结果,存入set3中
sunion方法: 取并集
sunionstore方法:取得并集,存入set3中
smove方法: 从一个set集合移动到另外一个set集合里
smove set1 set2 aaa //将set1中的元素aaa移动到set2中(至关于剪切复制)
scard方法: 查看集合里元素个数
sismember方法: 判断某元素是否为集合中的元素 返回1表明是集合中的元素,0表明不是
srandmember方法: 随机返回一个元素
1)添加方法——zadd
zadd zset1 1 one
向有序集合中添加一个元素,该元素若是存在,则更新顺序,在重复插入的时候 会根据顺序属性更新,其中的“1”为插入时指定的下标。
2)删除方法
zrem 删除名称为key的zset中的元素member
zremrangebyrank 删除 1到1(只删除索引1)
zremrangebyscore 删除指定序号
3)zincrby 以指定值去自动递增或者减小,用法和以前的incrby相似
4)zrangebyscore 找到指定区间范围的数据进行返回
5)排序索引
zrank 返回排序索引 从小到大排序(升序排序以后再找索引) 注意 一个是顺序号 一个是索引 zrank返回的是索引
zrevrank 返回排序索引 从大到小排序(降序排序以后再找索引)
6)zcard 返回集合里全部元素的个数
7)zcount 返回集合中score在给定区间中的数量
8)zremrangebyrank zset [from] [to](删除索引)
9)zremrangebyscore zset [from] [to] (删除指定序号)