文章目录
重要的:java中操作json串的三剑客:开源的jackson 阿里巴巴的fastjson 谷歌的gson
Redis入门
1.Redis的含义
Redis是一种以key-value值存储的分布式缓存数据库.
2.Redis的基本命令
1.redis -h ip -p 6379 -a password:登录远程Redis服务
2.redis-cli:登录本地redis服务
3.docker exec -it redis01 bash:进入Redis容器
4. help / ?:帮助
help type/? type :查看是什么类型
help set/?set:查看怎么设置
help get/?get:查看怎么获取
5.expire key 需要设置的秒数:设置有效时间
7.key *:查看里面所有的key
8.flushdb:清空当前数据库
flushall:清空所有的数据库(redis默认有16个数据库)
9.select 0-15:可以切换不同的数据库
10.ttl key:查看key剩余的时间,值为-2时,表示key已被删除
11.persist key:通过persist让对特定key设置的生效时长失效。
12.exit:退出redis服务
13.shutdown:关闭redis服务
14.clear:清空redis屏幕
15.info:查看redis信息
16.type key:查看类型
Redis的数据类型
常用的数据类型
Redis中常用的数据类型包含字符串、散列、列表、集合、有序集合.
String类型的实践
1.incr
语法:incr key
作用:用来递增key的值(只加一)
例子:
2.get/set
语法:get key/set key
作用:用来获取/设置key
例子:
3.incrby
语法:incrby key 要加的数
作用:用来递增想要加的数
例子:
4.decr/decrby
语法:decr key
decrby key 要减的数
作用:用来递减key的值(只加一)
用来递减想要加的数
例子:
5.append
语法:append key 要拼接的东西
作用:拼接需要的东西
例子:
6.strlen
语法:strlen key
作用:计算可以的长度
例子:
7.mset
语法:mset key value[key value…]
作用:设置多个key和value
例子:
8.mget
语法:mget key
作用:通过key获取对应的value
例子:
Hash类型实践
1.hset (和hmset功能一样,但是hmset不怎么用了)
语法:hest key field value
hest key field value [ key field value…]
作用:设置单个或多个key、field、value
2.hincrby
语法:hincrby key field 要递增的数(正数)
hincrby key filed 要递减的数(负数)
作用:要递增的数
要递减的数
3.hmget
语法:hmget key field [field…]
作用:通过key和属性获取对应的值
4.hexists
语法:hexists key field
作用:判断key、filed是否存在
5.hdel
语法:hdel key field
作用:删除key、value
6.hkeys/hvals
语法:hkeys key/hvals key
作用:只获取字段名/字段值
List类型实践
1.lpush
语法:lpush key element[element…]
作用:在key对应list的头部添加字符串元素
2.rpush
语法:rpush key element[element…]
作用:在key对应list的尾部添加字符串元素
3.del
语法:del key[key…]
作用:清空集合元素
4.linsert
语法:linsert key before|after pivot element
作用:在key对应list的特定位置之前或之后添加字符串元素
例子:
redis 127.0.0.1:6379> rpush mylist3 "hello"
(integer) 1
redis 127.0.0.1:6379> rpush mylist3 "world"
(integer) 2
redis 127.0.0.1:6379> linsert mylist3 before "world" "there"
(integer) 3
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "there"
3) "world"
redis 127.0.0.1:6379>
5.lset
语法:lset key index element
作用:设置list中指定下标的元素值(一般用于修改操作)
例子:
redis 127.0.0.1:6379> rpush mylist4 "one"
(integer) 1
redis 127.0.0.1:6379> rpush mylist4 "two"
(integer) 2
redis 127.0.0.1:6379> rpush mylist4 "three"
(integer) 3
redis 127.0.0.1:6379> lset mylist4 0 "four"
OK
redis 127.0.0.1:6379> lset mylist4 -2 "five"
OK
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "four"
2) "five"
3) "three"
redis 127.0.0.1:6379>
6.lrem
语法:lrem key count element
作用:从key对应list中删除count个和value相同的元素,count>0时,按从头到尾的顺序删除
7.ltrim
语法:ltrim key start stop
作用:保留指定key 的值范围内的数据
8.lpop
语法:lpop key [count]
作用:从list的头部删除元素,并返回删除元素
9.rpop
语法:rpop key [count]
作用:从list的尾部删除元素,并返回删除元素
10.rpoplpush
语法:rpoplpush source destination
作用:只获取字段名/字段值
11.llen
语法:llen key
作用:从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的
12.lindex
语法:lindex key index
作用:返回名称为key的list中index位置的元素
13.lrange
语法:lrange key start stop
作用:查看指定位置的数据
Set类型实践
1.sadd
语法:hdel key member[member…]
作用:添加元素,重复元素添加失败,返回0
2.smembers
语法:smembers key
作用:获取集合中成员
3.spop
语法:spop key [count]
作用:移除并返回集合中的一个随机元素[count指的是想要删除的个数]
4.smove
语法:smove source destination member
作用:移动一个元素到另外一个集合
5.sunion
语法:sunion key [key…]
作用:实现集合的并集操作
例子:
127.0.0.1:6379> sadd internet amoeba nginx redis
(integer) 3
127.0.0.1:6379> sadd bigdata hadopp spark rabbitmq
(integer) 3
127.0.0.1:6379> smembers internet
1) "amoeba"
2) "redis"
3) "nginx"
127.0.0.1:6379> smembers bigdata
1) "hadopp"
2) "spark"
3) "rabbitmq"
127.0.0.1:6379> smove bigdata internet rabbitmq
(integer) 1
127.0.0.1:6379> smembers internet
1) "amoeba"
2) "redis"
3) "rabbitmq"
4) "nginx"
127.0.0.1:6379> smembers bigdata
1) "hadopp"
2) "spark"
127.0.0.1:6379>
6.scard
语法:scard key
作用:获取集合中的成员个数
7.sismember
语法:sismember key member
作用:判断元素是否在这个中
事务控制
redis中的事务控制为multi,可以多次set key value
通过exec执行即可