Redis学习

来源:互联网 发布:js ul li点击显示隐藏 编辑:程序博客网 时间:2024/06/05 02:05
Redis的数据结构:

1,字符串:键名-string

用法:

1 127.0.0.1:6379> get username2 (nil)3 127.0.0.1:6379> set username user4 OK5 127.0.0.1:6379> get username6 "user"7 127.0.0.1:6379> del username8 (integer) 1

2,链表:键名-list

用法:

1 127.0.0.1:6379> rpush list-key item1 item2                  2 (integer) 2                                                 3 4 127.0.0.1:6379> lrange list-key 0 -1                        5 1) "item1"                                                  6 2) "item2"                                                  

rpush向为key为list-key加入元素item1,item2两个元素,为一个列表,用lrange list-key 0 -1,0代表第一个下标,-1为最后一个下标。意思就是第一个到最后一个元素,比如说:

1 127.0.0.1:6379> rpush list-key item32 (integer) 33 4 127.0.0.1:6379> lrange list-key 0 -15 1) "item1"6 2) "item2"7 3) "item3"

在列表中,可以使用lindex查询指定下标的元素:

1 127.0.0.1:6379> lrange list-key 0 -12 1) "item1"3 2) "item2"4 3) "item3"5 127.0.0.1:6379> lindex list-key 16 "item2"

下标从是从0开始的,所以1是第二个元素。

使用lpop弹出一个元素:

 1 127.0.0.1:6379> lrange list-key 0 -1 2 1) "item1" 3 2) "item2" 4 3) "item3" 5 4) "item4" 6 127.0.0.1:6379> lpop list-key 7 "item1" 8 127.0.0.1:6379> lrange list-key 0 -1 9 1) "item2"10 2) "item3"11 3) "item4"

这个命令可以弹出列表的首元素。首元素为item1,所以操作了这个命令会返回item1并在列表中去除这个元素,可以把这个列表理解为一个队列

3,集合Set

Set是集合,和list不同之处在于,set只能存储不同的元素。

可以使用sadd来想一个key中添加元素,格式为key  value比如:

1 127.0.0.1:6379> sadd set-key item12 (integer) 13 127.0.0.1:6379> sadd set-key item24 (integer) 15 127.0.0.1:6379> sadd set-key item36 (integer) 1

使用smembers查看添加的所有元素

1 127.0.0.1:6379> smembers set-key2 1) "item3"3 2) "item2"4 3) "item1"

可以查出这个key中的所有元素,显示的顺序和添加的相反。这个时候我们在添加一个原来已经添加过的值。

1 127.0.0.1:6379> sadd set-key item12 (integer) 03 127.0.0.1:6379> smembers set-key4 1) "item3"5 2) "item2"6 3) "item1"

并没有出现这个值,说明set中存的内容是互不相同的。

还可以通过sismember查看这个元素是否在set中,比如:

1 127.0.0.1:6379> sismember set-key item32 (integer) 13 127.0.0.1:6379> sismember set-key item44 (integer) 0

存在的返回1,不存在返回0。接下来是删除元素,使用srem删除元素:

1 (integer) 02 127.0.0.1:6379> srem set-key item13 (integer) 14 127.0.0.1:6379> srem set-key item5 (integer) 0

这个命令会返回删除所影响的元素,0的时候是不影响,意思就是删除失败或者没有这个元素可以删除。

1 127.0.0.1:6379> smembers set-key2 1) "item3"3 2) "item2"

4,散列 就是哈希表

散列实际上及时key-value的映射,就是个简单版的redis,向散列中添加只得方式是:

1 127.0.0.1:6379> hset hash-key key1 n12 (integer) 13 127.0.0.1:6379> hset hash-key key2 n24 (integer) 15 127.0.0.1:6379>

然后可以查看hgetall是查询整个key为hash-key的散列key和value值,hget是查询特定的key对应的值:

127.0.0.1:6379> hgetall hash-key1) "key1"2) "n1"3) "key2"4) "n2"127.0.0.1:6379> hget hash-key key1"n1"

使用hdel删除

1 127.0.0.1:6379> hdel hash-key key12 (integer) 13 127.0.0.1:6379> hgetall hash-key4 1) "key2"5 2) "n2"

删除了对应的key和value值。

5,有序集合zset

有序集合和hash的存储格式类似,会根据有序集合的值进行排序,值被称为分值,为浮点类型。向zset中添加元素的命令为:zadd

1 127.0.0.1:6379> zadd zset-key 100 member12 (integer) 13 127.0.0.1:6379> zadd zset-key 99 member04 (integer) 15 127.0.0.1:6379> zadd zset-key 101 member26 (integer) 1

现在查看一下结果,使用zrange命令,这个命令和lrange一样:

1 127.0.0.1:6379> zrange zset-key 0 -12 1) "member0"3 2) "member1"4 3) "member2"

已经排好序了。还可以查看详情 zrange zset-key 0 -1 withscores:

1 127.0.0.1:6379> zrange zset-key 0 -1 withscores2 1) "member0"3 2) "99"4 3) "member1"5 4) "99"6 5) "member2"7 6) "101"

 可以查询某个区间内的元素zrangebyscore 下面的命令是查看0-90和0-99的区间:

1 127.0.0.1:6379> zrangebyscore zset-key  0 90 withscores2 (empty list or set)3 127.0.0.1:6379> zrangebyscore zset-key  0 99 withscores4 1) "member0"5 2) "99"6 3) "member1"7 4) "99"8 127.0.0.1:6379>

删除zset的命令

1 127.0.0.1:6379> zrem zset-key member02 (integer) 13 127.0.0.1:6379> zrem zset-key member04 (integer) 05 127.0.0.1:6379>

这个命令会返回影响的行数,如果此行存在并且被删除,则返回1,否则返回0。

1 127.0.0.1:6379> zrange zset-key 0 -1 withscores2 1) "member1"3 2) "99"4 3) "member2"5 4) "101"6 127.0.0.1:6379>

这样就少了一条记录。

以上就是Redis的基本命令,最后全部删除之前操作的数据!

1 flushall

 

0 0
原创粉丝点击