Redis基本入门

Redis

基本命令

判断是否存在key(EXISTS)
127.0.0.1:6379> EXISTS list
(integer) 0
查看某个key的类型(type)
127.0.0.1:6379> set name jhs
OK
127.0.0.1:6379> type name	#查看 key的类型
string 
当前数据库所有的 key(keys *)
127.0.0.1:6379> keys *		# 当前数据库所有的 key
1) "key:__rand_int__"
2) "myset:__rand_int__"
3) "mylist"
4) "counter:__rand_int__"
设置过期时间(EXPIRE)
127.0.0.1:6379> set name jhs
OK
127.0.0.1:6379> get name
"jhs"
127.0.0.1:6379> EXPIRE name 60 # 设置过期时间 ,单位秒 name在60秒后过期
(integer) 1
127.0.0.1:6379> ttl name	# 查看 key=name 还剩多长时间过期
(integer) 56
移除key
127.0.0.1:6379> move name 1 # 移除当前的key(并不常用)
(integer) 1

基本类型

String(字符串)


基础
127.0.0.1:6379> set key1 v1
OK
127.0.0.1:6379> keys *
1) "key:__rand_int__"
2) "key1"
3) "myset:__rand_int__"
4) "mylist"
5) "counter:__rand_int__"
127.0.0.1:6379> EXISTS key1 # 判断某个key 是否存在 
(integer) 1
127.0.0.1:6379> APPEND key1 "hello" # 追加 字符串 将hello 添加到 key1中 如果不存在key则创建key
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> STRLEN key1	#获取字符串的长度
(integer) 7
设置自增 自减
#	设置自增 自减	#
127.0.0.1:6379> set count 0
OK
127.0.0.1:6379> get count
"0"
127.0.0.1:6379> incr count  # 自增 加1
(integer) 1
127.0.0.1:6379> type count
string
127.0.0.1:6379> incr count
(integer) 2
127.0.0.1:6379> get count
"2"
127.0.0.1:6379> decr count # 自减 减一
(integer) 1
127.0.0.1:6379> get count
"1"
#	自增 自减的 步长	#
127.0.0.1:6379> INCRBy count 2 # 设置步长 +2 步长为2
(integer) 3
127.0.0.1:6379> incrby count 2
(integer) 5
127.0.0.1:6379> decrby count 2	#设置步长 -2
(integer) 3
127.0.0.1:6379> DECRBY count 3
(integer) 0

#	清空当前数据库	#
127.0.0.1:6379> FLUSHdb #清空当前数据库
OK
127.0.0.1:6379> keys *
(empty list or set)
处理字符串
#	截取符串	#
127.0.0.1:6379> set name "hello,jhs"
OK
127.0.0.1:6379> get name 
"hello,jhs"
127.0.0.1:6379> GETRANGE name 0 4 # 获取 0,4
"hello"
127.0.0.1:6379> GETRANGE name 0 -1 	#获取 全部
"hello,jhs"

#	替换	#
127.0.0.1:6379> get name
"hello,jhs"
127.0.0.1:6379> SETRANGE name 1 xx  # 从下标 1 开始替换 
(integer) 9
127.0.0.1:6379> get name
"hxxlo,jhs"
127.0.0.1:6379> SETRANGE name 1 e
(integer) 9
127.0.0.1:6379> get name
"hexlo,jhs"
赋值
#赋值 操作
127.0.0.1:6379> setex key1 30 "hello"	# 设置过期时间 30秒
OK
127.0.0.1:6379> ttl key1	#查看剩余时间
(integer) 15
127.0.0.1:6379> SETNX mykey "redis"	# 判断是否有	mykey 没有 则创建&赋值 
(integer) 1 
127.0.0.1:6379> SETNX mykey "mongodb" # 判断是否有	mykey 有 不会替换原来的值
(integer) 0
127.0.0.1:6379> get mykey
"redis" 
127.0.0.1:6379> set mykey java # set key 有这个key就替换掉里面的内容 没有就创建 
OK
127.0.0.1:6379> get mykey
"java"
#	批量赋值,获取值	#
mset
mget
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 # 批量赋值
OK
127.0.0.1:6379> keys *
1) "k2"
2) "name"
3) "mykey"
4) "k1"
5) "k3"
127.0.0.1:6379> mget k1 k2 k3	#批量获取值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v2 k4 v4 # 原子性的操作 要么都成功 要么都失败
(integer) 0
getset
#	getset	#
127.0.0.1:6379> getset db redis #
(nil)
127.0.0.1:6379> getset db redis
"redis"
127.0.0.1:6379> getset db  mogodb
"redis"
127.0.0.1:6379> getset db  mogodb
"mogodb"
127.0.0.1:6379> getset db  jhs
"mogodb"
127.0.0.1:6379> getset db  hy
"jhs"

List(列表)


  • 在redis里面,我们可以将list完成.栈,队列,阻塞队列!
  • redis 命令不区分大小写
添加 (LPUSH)
127.0.0.1:6379> LPUSH list 1 #	在左边(上面)添加 
(integer) 1
127.0.0.1:6379> LPUSH list 2
(integer) 2
127.0.0.1:6379> LPUSH list 3
(integer) 3
127.0.0.1:6379> LRange list 0 -1	#	获取全部的数据
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> LRange list 0 1		#	获取 一定范围的数据
1) "3"
2) "2"
127.0.0.1:6379> RPUSH list 4	#	在右边(下边)添加 元素
(integer) 4
127.0.0.1:6379> LRange list 0 -1
1) "3"
2) "2"
3) "1"
4) "4"

移除(LPOP,Lrem)
127.0.0.1:6379> lRange list 0 -1 # 获取全部数据
1) "3"
2) "2"
3) "1"
4) "4"
127.0.0.1:6379> LPOP list	#	移除左边(上面)第一个元素 
"3"
127.0.0.1:6379> lRange list 0 -1
1) "2"
2) "1"
3) "4"
127.0.0.1:6379> RPOP list # 移除右面(下面)第一个元素 
"4" 
127.0.0.1:6379> lRange list 0 -1
1) "2"
2) "1" 

#	移除指定的值	#
127.0.0.1:6379> LRANGE nameList 0 -1 
1) "lcj"
2) "jxl"
3) "hy"
4) "jhs"
127.0.0.1:6379> LPUSH nameList jxl #List 可以添加 重复值
(integer) 5
127.0.0.1:6379> LRANGE nameList 0 -1
1) "jxl"
2) "lcj"
3) "jxl"
4) "hy"
5) "jhs"
127.0.0.1:6379> lrem nameList 1 jxl # 移除 指定 的 值 
(integer) 1
127.0.0.1:6379> LRANGE nameList 0 -1
1) "lcj"
2) "jxl"
3) "hy"
4) "jhs"
127.0.0.1:6379> LPUSH nameList jxl
(integer) 5
127.0.0.1:6379> LPUSH nameList jxl
(integer) 6
127.0.0.1:6379> LRANGE nameList 0 -1
1) "jxl"
2) "jxl"
3) "lcj"
4) "jxl"
5) "hy"
6) "jhs"
127.0.0.1:6379> lrem nameList 3 jxl # 移除 指定 的 值 
(integer) 3
127.0.0.1:6379> LRANGE nameList 0 -1
1) "lcj"
2) "hy"
3) "jhs"


获取(lindex)
127.0.0.1:6379> lRange list 0 -1
1) "2"
2) "1"
127.0.0.1:6379> lindex list 0 # 获取 List 中 具体的某个值
"2"
127.0.0.1:6379> LLEN list # 返回 List 的长度
(integer) 2


截取(ltrim)
127.0.0.1:6379> LRANGE number 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379> ltrim number 1 2
OK
127.0.0.1:6379> LRANGE number 0 -1
1) "2"
2) "3"

移除并添加( RPOPLPUSH 组合命令)

移除最后一个添加到另一个list里面

127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> rpush number 6
(integer) 1
127.0.0.1:6379> rpush number 5
(integer) 2
127.0.0.1:6379> rpush number 4
(integer) 3
127.0.0.1:6379> RPOPLPUSH number count
"4"
127.0.0.1:6379> keys *
1) "count"
2) "number"
127.0.0.1:6379> EXISTS list
(integer) 0


替换list中指定下标的值(lset)
  • list 要存在
  • list下标存在
127.0.0.1:6379> keys *
1) "count"
2) "number"
127.0.0.1:6379> LRANGE number 0 -0
(error) ERR value is not an integer or out of range
127.0.0.1:6379> LRANGE number 0 -1
1) "6"
2) "5"
127.0.0.1:6379> lset number 0 # jhs 将 number 中下标为 0 的元素 提换 成 jhs
OK
127.0.0.1:6379> LRANGE number 0 -1
1) "jhs"
2) "5"
插入列表中每个元素(LINSERT)
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> Rpush mylist "hello"
(integer) 1
127.0.0.1:6379> Rpush mylist "hou"
(integer) 2
127.0.0.1:6379> keys *
1) "mylist"
127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "hou"
127.0.0.1:6379> LINSERT mylist before hou jiang # 插入到mylist 列表中 hou 的前面 添加 jiang
(integer) 3
127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "jiang"
3) "hou"
127.0.0.1:6379> LINSERT mylist after hou sen # 插入到mylist 列表中 hou 的后面 添加 sen
(integer) 4
127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "jiang"
3) "hou"
4) "sen"
 

Set(集合)


  • 集合里面的值不能重复
添加值(sadd)
获取全部Set集合中全部的值(SMEMBERS)
判断set集合是否包含某些元素(SISMEMBER)
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> 
127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset jhs
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "hello"
2) "jhs"
127.0.0.1:6379> SISMEMBER myset jhs
(integer) 1
127.0.0.1:6379> SISMEMBER myset jxl
(integer) 0
127.0.0.1:6379> SCARD myset
(integer) 2

随机抽取(SRANDMEMBER)
127.0.0.1:6379> SRANDMEMBER myset
"jhs"
127.0.0.1:6379> SRANDMEMBER myset
"hy"
127.0.0.1:6379> SRANDMEMBER myset
"jhs"
127.0.0.1:6379> SRANDMEMBER myset 2 #随机抽取指定个数
1) "jhs"
2) "hy"


删除
随机删除(SPOP)
127.0.0.1:6379> SMEMBERS myset
1) "5"
2) "3"
3) "1"
4) "jhs"
5) "4"
6) "6"
7) "hy"
127.0.0.1:6379> SPOP myset # 默认删除一个
"hy"
127.0.0.1:6379> SPOP myset 2 # 随机删除两个
1) "6"
2) "3"
指定删除(SREM)
127.0.0.1:6379> SMEMBERS myset
1) "hello"
2) "jhs"
3) "hy"
127.0.0.1:6379> SREM myset hello # 移除set集合中的某个值(SREM)
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "jhs"
2) "hy"
将某个元素从一个集合移动到另一个集合 (SMOVE)

127.0.0.1:6379> SMEMBERS myset
1) "5"
2) "1"
3) "jhs"
4) "4"
127.0.0.1:6379> SMOVE myset youset jhs
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "5"
2) "1"
3) "4"
127.0.0.1:6379> SMEMBERS youset
1) "jhs"
127.0.0.1:6379> 

两个set集合的交(SINTER),差(SDIFF) ,并集(SUNION)
127.0.0.1:6379> SMEMBERS key1
1) "a"
2) "c"
3) "b"
127.0.0.1:6379> SMEMBERS key2
1) "d"
2) "e"
3) "c"
127.0.0.1:6379> SDIFF key2 key1
1) "d"
2) "e"
127.0.0.1:6379> SDIFF key1 key2
1) "a"
2) "b"
127.0.0.1:6379> SINTER key1 key2
1) "c"
127.0.0.1:6379> SUNION key1 key2
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"

Hash


Zset

学的不是技术 更是梦想

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值