目录
背景
第一部分 Redis的数据类型
参考文献及资料
背景
Redis作为内存数据库,具有高效的读取性能。首次安装完Redis和Python连接redis的包。尝试做一些hello world的练习。
第一部分 Redis的数据类型
- Redis是一个键值数据库(Key-Value)
- 其中Value值支持5中数据类型。分别是string(字符串)、list(列表)、set(集合)、hash(散列)、zset(有序集合)
redis-cli控制台的使用及各种数据类型的操作
- 进入控制台
1 | >>redis-cli |
表示进入控制台,可以和redis进行互动。首先尝试字符串类型的三个命令(set、get、del)。
1、string类型的3个常用命令
set命令
1 | 127.0.0.1:6379> set hello world |
set命令用于给redis中指定键赋值。这里key为hello,而键值value为world。如果key不存在会自动新建该键。
get命令
1 | 127.0.0.1:6379> get hello |
get命令用于从redis中获取指定键的值。例子获取了hello键的值,返回键值字符串“world”。
del命令
1 | 127.0.0.1:6379> del hello |
del命令用于从redis中删除指定键的键值。且我们用get命令检验,确实被删除了。
2、list类型的4个命令
rpush、lpush命令
1 | 127.0.0.1:6379> rpush list-test item1 |
上面的命令我们从右边先后推入了item1,item2,item1;然后从左边推入了item3。所以最后的形式应该是[“item3”,”item1”,”item2”,”item1”]
lrange命令
1 | 127.0.0.1:6379> lrange list-test 0 -1 |
lrange用于获取list中指定范围的值。这里0是起始索引,-1是最后一个索引(类似python中的list索引)。
lindex 命令
1 | 127.0.0.1:6379> lindex list-test 2 |
lindex命令从list中获得指定索引位置的值。这里2实际是第三个值,所以返回“item2”。
lpop、rpop命令
1 | 127.0.0.1:6379> lpop list-test |
lpop命令将list-test中最左边的值删除(弹掉),我们用lrange命令查看,确实已经删除。rpop类似使用。
3、set集合类型的四个命令
sadd命令
1 | 127.0.0.1:6379> sadd set-test item |
使用sadd命令向集合set-test加入了5个字符串值。注意set类型类似python中的set类型。无序值不重复。
sismember命令
1 | 127.0.0.1:6379> sismember set-test item3 |
sismember用来查看值是否在集合中。上面检查item3是否在set-test,返回1,表示在集合中。
srem命令
1 | 127.0.0.1:6379> srem set-test item2 |
srem命令查看值是否在集合中,如果在返回1且删除该值。否则返回0。
smembers命令
1 | 127.0.0.1:6379> smembers set-test |
smembers命令查看集合中所有值。上面的结果也验证了srem确实将item2删除了。
set类型还有集合之间的运算(数学),例如sinter、sunion、sdiff分别是集合的交集、并集、差集运算。
4、hash散列类型的命令
散列的数据类型是存储多个键值对之间的映射。
hset命令
1 | 127.0.0.1:6379> hset hash-test sub-key1 value1 |
hset 向hash-test中插入键及键值。返回1表示原hash中无该值,0表示重复插入。
hgetall命令
1 | 127.0.0.1:6379> hgetall hash-test |
hgetall命令从hash-test中获取所有的键值。
hget命令
1 | 127.0.0.1:6379> hget hash-test sub-key2 |
hget命令从hash-test中获得指定键的键值。
hdel命令
1 | 127.0.0.1:6379> hdel hash-test sub-key2 |
hdel命令删除指定键及键值。
5、有序集合的命令
zadd命令
1 | 127.0.0.1:6379> zadd zset-test 123 number1 |
zadd命令zset-test中插入分值(score)及成员名(member)。
zrange命令
1 | 127.0.0.1:6379> zrange zset-test 0 -1 withscores |
zrange命令获取指定范围的分值和成员名。其中withscores参数用来控制是否同时获得score值。
zrangebyscores命令
1 | 127.0.0.1:6379> zrangebyscore zset-test 0 200 withscores |
zrangebyscores命令获取scores指定范围的分值和成员名。
zrem命令
1 | 127.0.0.1:6379> zrem zset-test number1 |
zrem命令检查zset-test中知否有该分值和成员名。如果有返回1,并且删除。
参考文献及资料
1、redisbook,链接:https://github.com/huangz1990/redisbook