基础命令
存储key-value
set server:name “test”
set connections 10
根据key取出value
get server:name
get connections
根据key删除key-value
del connections
根据key对整型value做自增自减
incr connections
decr connections
如果key值不存在会创建一个key-value数据,value默认为1
1 | 为什么官方不做一些复杂操作来实现自增或自减的功能呢? |
指定key-value存在的时间,过了这个时间就会被自动删除
存储resource:lock
set resource:lock “Redis Demo”
设置resource:lock过期时间
expire resource:lock 120
查看resource:lock剩余过期时间
ttl resource:lock
1 | 这里有个小知识点: |
复杂数据类型
List
Redis也提供了几种复杂的数据类型,首先要提的就是list,一个有序列表。关于list需要记住几个重要的命令:
1 | RPUSH, LPUSH, LLEN, LRANGE, LPOP, and RPOP. |
rpush 向后push
向friends列表后面添加数据,如果friends不存在会创建
rpush friends “Alice”
lpush 向前push
向friends列表前面添加数据
lpush friends “Sam”
lpop 向前pop
从列表前面取出数据,注意pop动作是取出,也就是说列表中的数据也会被移除
lpop friends
rpop 向后pop
从列表后面取出数据
rpop friends
llen 取列表长度
llen friends
lrange 取列表的子集
lrange friends 0 1
1 | 如果lrange friends 0 -1像这样,第二个参数为-1,则表示从0取到列表的最后一个元素 |
Set
接下来我们要介绍的数据类型是Set。Set的结构与List类似,但是它不能排序并且不能有相同的值,关于Set的重要的命令有:
1 | SADD, SREM, SISMEMBER, SMEMBERS and SUNION |
sadd 新增元素,如果set集合不存在则会创建
sadd superpowers “hello”
sadd superpowers “world”
srem 删除元素
srem superpowers “hello”
sismember 测试指定元素是否存在
不存在返回0
sisimember superpowers “hello”
存在返回1
sismember superpowers “world”
smembers 查看set中的所有元素
smembers superpowers
sunion 联合两个或多个set并查看合成的值
1 | sadd birdpowers "nihao" |
Sorted Sets
也许你认为set已经够用了很方便了,但是老铁,它不能排序呀,不能排序就少了很多功能了有木有。所以从Redis1.2开始引入了sorted sets。Sorted Sets可以理解为有规律的set,但是sorted sets中的每个值都有一个关联的数值。这个数值用来对set进行排序。
1 | 就像下面这样,每个值都要指定一个score以便排序 |
Hashes
简单的字符串、Set或者Sorted Sets已经可以完成大部分任务了。Redis还能提供一种类型:Hashes。
Hashes are maps between string fields and string values, so they are the perfect data type to represent objects (eg: A User with a number of fields like name, surname, age, and so forth):(直接看官方解释吧,懒得翻译了,大意就是用来存储诸如用户实体这样的对象的)
怎么用呢?
hset 添加元素
1 | 使用方法如下: |
hgetall 查看所有元素
1 | To get back the saved data use HGETALL: |
hget 查看指定元素
1 | If you only need a single field value that is possible as well: |
hash中还有许多命令可以帮助我们做原子操作:
1 | 设置值: |
参考
以上只是跟着redis官网给的导学内容学习到的,关于redis的更多内容还需要在工作中不断地去探索。。。