Redis的常用命令
- redis的数据类型
redis-共分 为五种基本数据类型: String、 Hash、 List、Set、 ZSet
1.String类型简单就是一个key对应一个value
- 启动Redis的命令
指定一个conf文件就行
bin/redis-server start /opt/module/tools_redis/etc/redis.conf
查看是否启动成功 ps -ef | grep redis
- 启动Redis客户端命令
bin/redis-cli
1、String字符串
- 设置值&取值&删除值
0代表false 1代表true
一:set key vlaue
指定一个key 在给出value值
多次设置会把 相同key的值覆盖掉
get key 取值
del key 删除值
二:setnx(not exist) key value
如果不存在则设置,存在则返回0
三: setex(expired) key 10 value
10代表当前key的有效期 10秒后数据就自动删除
应用场景可以把数据放在redis缓存中,一段时间内就失效了。
四:setrange key 10 value
从字符串索引10的位置开始往后替换
字符串替换
- 批量设置值
一: mset key1 value key2 value key3 value
批量设置值
mget key1 key2 key3
批量获取值
二: getset key value
先把key对应的value值 获取到,
再重新设置key 的值为value
三: incr key
对key的值递增
incrby key 3
指定递增步长
decr key
对key的值递减
decrby key 3
指定递减步长
四: append key value
追加到key所对应的value的后面
五: strlen key
获取字符串的长度
2、Hash类型数据
一: Hash类型是String类型的field和value的映射表,或者说-一个String集合。 它的特别
二:适合存储对象,相比较而言,将-一个对 象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。
- 如何设置 Hash
举例比如有一张表
name | age |
---|---|
张三 | 13 |
张四 | 14 |
张五 | 15 |
- 设计一:
Hash名字叫user
那么Hash的key和value可以是
key value
张三 13
张四 14
张五 15
HashMap(key,value)
就可以实现以一个hash对应数据库中一条记录,这一条记录也就代表一个对象。
- 设计二:
倾向于json的方式
Hash名字叫user
然后可以把数据库中的一个主键,设置一个UUID来对应。
然后把一条记录打成一个json
然后一个UUID对应一个 字符串。
uuid json_string
1 “张三,13"
2 “张四,14"
3 “张五,15"
HashMap(uuid,json_string)
- 两种设计的应用场景
假如只拿某条数据就用设计一
如果全部都需要用到就可以使用设计二
命令
一: hset myhash key value
添加hash集合, myhash是集合名字
key是字段名value为其值
hget myhash key获取值,
二: hmset myhash key value key value
同时设置多个key 和多个值
hmget myhash key key
同时获取多个值
同样也有hsetnx,和setnx大同小异。
三: hincrby Myhash key 对值递增
hdecrby集合递增和递减。
四: hexists Myhash key value
是否存在key如果存在返回不存在返回0
五:hlen返回hash集合里的所有的键数值
六:hdel删除指定hash的field
七:hkeys返回hash里所有的字段
八:hvals返回has h的所有value
九:hgetall返回hash里所有的key和value
不一一测试了 自己测试吧,就多了一个hash的名字
3、List数据类型
一、List类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更详细的说,List类型是-一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素, 允许元素有重复。
二、list 的设计非常简单精巧,即可以做为栈,又可以作为队列。满足绝大多数需求。
三、相当于java中的 dequeue 可以操作头部也可以操作尾部
常用命令
一:lpush list_name value 先进后出
list_name 是list的名字
value 是list中的元素
lrange list_name 0 -1
从list获取元素,从0开始 到-1没有元素结束,
二:rpush list_name value 先进先出
lrange list_name 0 -1 获取元素
三:linsert list_name before value value2
第一个value是集合中的 元素
第二个value是要插入到集合中的元素
作用:把value2元素插入到value元素的前面,可以让value2先输出。
四:lset list_name 2 value
将指定下标的元素替换掉
五: lrem list_name 2
删除指定下标的元素 并返回删除的个数
六:lpop list_name 方法:从list的 头部删除元素,并返回删除元素
七:rpop lsit_name 方法:从list的尾 部删除元素,并返回删除元素
应用场景
针对这两个方法的应用场景:有些小型企业就会采用Redis作为消息系统来消费数据,那么就可以采用 Rpush 来存储数据,再用这两个方法进行消费,消费完就会删除,(lpop,rpop)这两个方法会返回元素,所以可以低效率的代替kafka之类的消息系统
3、set与zset数据类型
- set是无序的
- zset是有序的
一:zadd zset_name 3 value
可以理解为 给3是value的索引
获取元素
zrange zset_name 0 -1 获取所有的value值
zrange zset_name 0 -1 winthscres 获取所有的value值和index索引
HyperLogLog类型
bitMap类型
GeoHash类型
BloomFilter类型