Redis命令学习

  • 通用命令

  连接服务端的命令 redis-cli -h ip -p port -a password

redis-cli -h 127.0.0.1 -p 6379 -a 123456

GETSET 命令 自动将key对应到value并且返回原来key对应的value。如果key存在但是对应的value不是字符串,就返回错误

此命令可以用于redis实现分布式锁。

127.0.0.1:6379> incr rrr
(integer) 1
127.0.0.1:6379> getset rrr 100
"1"
127.0.0.1:6379> get rrr
"100"

EXISTS命令 对应的key是否存在 存在返回1不存在返回0

127.0.0.1:6379> exists aaa
(integer) 1
127.0.0.1:6379> exists hhh
(integer) 0

KEYS命令 查找所有符合给定模式pattern(正则表达式)的 key 

127.0.0.1:6379> keys *
 1) "hackers"
 2) "aaa"
 3) "bbb"
 4) "myset"
 5) "\xac\xed\x00\x05t\x00\x03111"

SETNX将key设置值为value,如果key不存在,这种情况下等同SET命令,当key存在时,什么也不做。不存在返回1,存在返回0

127.0.0.1:6379> setnx ddd 444
(integer) 1
127.0.0.1:6379> setnx ddd 444
(integer) 0
  • 字符串String

SET命令 GET命令 设置值 获取值

127.0.0.1:6379> set num 100
OK
127.0.0.1:6379> get num
"100"
127.0.0.1:6379> 

INCR命令 DECR命令 将字符串值解析成整型,将其加一或者减一  原子操作

127.0.0.1:6379> incr num
(integer) 101
127.0.0.1:6379> decr num
(integer) 100

SET EX 给值设置超时时间 ex秒为单位 px 毫秒为单位

127.0.0.1:6379> set ccc 100 ex 10
OK
127.0.0.1:6379> get ccc
"100"
127.0.0.1:6379> get ccc
"100"
127.0.0.1:6379> get ccc
(nil)

TTL 查看key对应的值剩余存活时间

127.0.0.1:6379> set ddd 1000 ex 30
OK
127.0.0.1:6379> ttl ddd
(integer) 28
127.0.0.1:6379> 

DEL 删除命令

127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> get age
(nil)
  • Hash 适合存储对象

HMSET HGET 设置值获取值命令

127.0.0.1:6379> hmset www username antirez birthyear 1977 verified 1
OK
127.0.0.1:6379> hget www username
"antirez"
  • 集合List

LPUSH RPUSH LRANGE命令 向list的左边(头部)右边(尾部)添加一个新元素,取出元素

127.0.0.1:6379> lpush mylist A B
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "B"
2) "A"
127.0.0.1:6379> rpush mylist CC DD
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "B"
2) "A"
3) "CC"
4) "DD"

LPOP RPOP 删除元素并同时返回删除的值。可以在左边或右边操作

127.0.0.1:6379> rpop mylist
"DD"
127.0.0.1:6379> rpop mylist
"CC"
127.0.0.1:6379> lpop mylist
"B"

应用:list可被用来实现聊天系统。还可以作为不同进程间传递消息的队列。关键是,你可以每次都以原先添加的顺序访问数据。这不需要任何SQL ORDER BY 操作,将会非常快,也会很容易扩展到百万级别元素的规模。例如在评级系统中,比如社会化新闻网站 reddit.com,你可以把每个新提交的链接添加到一个list,用LRANGE可简单的对结果分页。

  • Set 去重无序的字符串元素的集合

SADD SMEMBERS 向集合添加元素 遍历 

127.0.0.1:6379> sadd myset aaa bbb ccc
(integer) 3
127.0.0.1:6379> smembers myset
1) "aaa"
2) "ccc"
3) "bbb"
  • Sorted sets 去重有序的字符串元素的集合

ZADD ZRANGE 添加元素获取元素

127.0.0.1:6379> zadd hackers 1940 alan
(integer) 1
127.0.0.1:6379> zadd hackers 1957 anita
(integer) 1
127.0.0.1:6379> zrange hackers 0 -1
1) "alan"
2) "anita"

参考文档 :redis中文官网

你可能感兴趣的:(redis)