Redis-key的基本命令

Redis命令

Redis命令:Redis命令

47.107.74.202:9807> move name 1 # 移除当前的key
(integer) 1
47.107.74.202:9807> keys *    # 查看当前数据库下的所有key
1) "age"
47.107.74.202:9807> set name wangjun   # 创建key
OK
47.107.74.202:9807> keys *
1) "name"
2) "age"
47.107.74.202:9807> get name   # 获取key的value
"wangjun"
47.107.74.202:9807> EXPIRE name 10   # 设置key的过期时间  单位是秒
(integer) 1
47.107.74.202:9807> ttl name  # 查看当前key的剩余时间
(integer) 4
47.107.74.202:9807> ttl name
(integer) 2
47.107.74.202:9807> ttl name
(integer) 1
47.107.74.202:9807> ttl name
(integer) 0
47.107.74.202:9807> ttl name
(integer) -2
47.107.74.202:9807> get name
(nil)
47.107.74.202:9807> type name    # 查看当前key的类型
string
47.107.74.202:9807> type age
string

String(字符串)

不要做一个只会 get set 的程序员

47.107.74.202:9807> set key1 v1            # 设置值
OK
47.107.74.202:9807> get key1            # 获得值
"v1"
47.107.74.202:9807> keys *                # 获得所有key
1) "key1"
2) "name"
3) "age"
47.107.74.202:9807> EXISTS key1            # 判断某一个key是否存在
(integer) 1
47.107.74.202:9807> APPEND key1 "hello"    # 追加字符串,如果当前key不存在,就是相当于set key
(integer) 7
47.107.74.202:9807> get key1
"v1hello"
47.107.74.202:9807> STRLEN key1            # 获取字符串的长度
(integer) 7
47.107.74.202:9807> APPEND key1 ",wangjun"
(integer) 15
47.107.74.202:9807> get key1
"v1hello,wangjun"

#######################################################################

47.107.74.202:9807> set views 0        # 初始浏览量为 0
OK
47.107.74.202:9807> get views
"0"
47.107.74.202:9807> incr views        # 自增1 浏览量变为1
(integer) 1
47.107.74.202:9807> incr views
(integer) 2
47.107.74.202:9807> incr views
(integer) 3
47.107.74.202:9807> get views
"3"
47.107.74.202:9807> DECR views        # 自减1 浏览量-1
(integer) 2
47.107.74.202:9807> DECR views
(integer) 1
47.107.74.202:9807> DECR views
(integer) 0
47.107.74.202:9807> DECR views
(integer) -1
47.107.74.202:9807> get views
"-1"
47.107.74.202:9807> INCRBY views 10        # 可以设置步长,指定增量!
(integer) 9
47.107.74.202:9807> INCRBY views 10
(integer) 19
47.107.74.202:9807> DECRBY views 5        # 可以设置步长,指定减量!
(integer) 14
字符串范围 range
47.107.74.202:9807> keys *
(empty array)
47.107.74.202:9807> set key1 "hello,wangjun"        # 设置 key1 的值
OK
47.107.74.202:9807> get key1
"hello,wangjun"
47.107.74.202:9807> GETRANGE key1 0 3                # 截取字符串 [0,3]
"hell"
47.107.74.202:9807> GETRANGE key1 0 -1                # 获取全部字符串 和 get key是一样的
"hello,wangjun"
字符串替换
47.107.74.202:9807> set key2 abcdefg
OK
47.107.74.202:9807> get key2
"abcdefg"
47.107.74.202:9807> SETRANGE key2 1 xx
(integer) 7
47.107.74.202:9807> get key2
"axxdefg"

SETEX (set with expire)创建和设置过期时间

SETNX(set if not exist) 不存在则创建(在分布式锁中常常使用!)

47.107.74.202:9807> SETEX key3 30 "hello"    # 设置key3 的值为 hello 30秒后过期
OK
47.107.74.202:9807> ttl key3
(integer) 27
47.107.74.202:9807> ttl key3
(integer) 25
47.107.74.202:9807> get key3
"hello"
47.107.74.202:9807> setnx key4 "redis"        # 如果key4 不存在 则创建key4
(integer) 1
47.107.74.202:9807> keys *
1) "key2"
2) "key1"
3) "key4"
47.107.74.202:9807> ttl key3
(integer) -2
47.107.74.202:9807> setnx key4 "mongoDB"    # 如果key4存在 则创建失败!
(integer) 0
47.107.74.202:9807> get key4
"redis"

批量创建

批量获取

47.107.74.202:9807> keys *                # 同时设置多个值
(empty array)
47.107.74.202:9807> mset k1 v1 k2 v2 k3 v3
OK
47.107.74.202:9807> keys *
1) "k2"
2) "k3"
3) "k1"
47.107.74.202:9807> keys *
1) "k2"
2) "k3"
3) "k1"
47.107.74.202:9807> mget k1 k2 k3        # 同时获取多个值
1) "v1"
2) "v2"
3) "v3"
47.107.74.202:9807> msetnx k1 v1 k4 v4    # msetnx是一个原子性的操作,要么一起成功,要么一起失败! 由于k1存在了  所以创建失败
(integer) 0
47.107.74.202:9807> keys *
1) "k2"
2) "k3"
3) "k1"
对象
47.107.74.202:9807> set user:2 {name:wangjun,age:3}        # 设置一个user:2 对象 值为json字符串来保存一个对象!
OK
47.107.74.202:9807> get user:2
"{name:wangjun,age:3}"

# 这里的key是一个巧妙的设计: user:{id}:{filed},如此设计在Redis中是完全可以的!

# 高阶玩法    
47.107.74.202:9807> mset user:1:name zhangsan user:1:age 2
OK
47.107.74.202:9807> mget user:1:name user:1:age
1) "zhangsan"
2) "2"
getset 先get然后再set
47.107.74.202:9807> GETSET db redis            # 如果不存在值,则返回nil 已经设置了key db 值为 redis
(nil)
47.107.74.202:9807> get db
"redis"
47.107.74.202:9807> GETSET db mongodb        # 如果存在值,获取原来的值,并设置新的值
"redis"
47.107.74.202:9807> get db                    # 获取得到新的值
"mongodb"
分类: 技术 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录