进入客户端
[xiaokang@hadoop redis-3.2.8]$ bin/redis-server redis.conf [xiaokang@hadoop redis-3.2.8]$ bin/redis-cli -h hadoop -p 6379查看所有的key
#在生产环境中,不建议使用此命令 hadoop:6379> keys * (empty list or set)设置指定key的值
hadoop:6379> set hello world OK #获取指定key的值 hadoop:6379> get hello "world"修改指定key的值
hadoop:6379> set hello xiaoliu OK hadoop:6379> get hello "xiaoliu"批量设置和批量获取
hadoop:6379> mset hello1 world1 hello2 world2 OK hadoop:6379> mget hello1 hello2 1) "world1" 2) "world2"过期时间
#设置一个key,并指定过期时间 hadoop:6379> setex hello3 5 world OK hadoop:6379> keys * 1) "hello2" 2) "hello1" 3) "hello" 4) "hello3" hadoop:6379> keys * 1) "hello2" 2) "hello1" 3) "hello"使用incr来执行一些累加器的应用 incr +1请求 decr -1请求
hadoop:6379> set PV 1 OK hadoop:6379> get PV "1" #PV中所存储的数字值+1 hadoop:6379> incr PV (integer) 2 hadoop:6379> get PV "2"将key所存储的值加上给定的增量值
hadoop:6379> incrby PV 2 (integer) 4将key所存储的值加上给定的浮点增量值
hadoop:6379> incrbyfloat PV 0.8 "4.8"设置hash的指定字段 设置大key、小key
hadoop:6379> hset userinfo userid 1 (integer) 1 hadoop:6379> hset userinfo username zhangsan (integer) 1获取hash字段
hadoop:6379> hset userinfo userid 1 (integer) 1 hadoop:6379> hset userinfo username zhangsan (integer) 1 hadoop:6379> hget userinfo userid "1" hadoop:6379> hget userinfo username "zhangsan"获取hash中所有的key,value
#把userinfo中所有字段和值都取出来 hadoop:6379> hgetall userinfo 1) "userid" 2) "1" 3) "username" 4) "zhangsan"获取hash中所有的key
hadoop:6379> hkeys userinfo 1) "userid" 2) "username"删除userinfo下的userid
hadoop:6379> hdel userinfo userid (integer) 1 hadoop:6379> hkeys userinfo 1) "username"lpush将一个或多个值插入到列表头部 lrange表示获取指定范围的元素
hadoop:6379> lpush list 1 2 3 4 (integer) 4 hadoop:6379> lrange list 0 -1 1) "4" 2) "3" 3) "2" 4) "1"添加元素
hadoop:6379> sadd set_test 1 (integer) 1 #具有去重功能 hadoop:6379> sadd set_test 1 2 3 4 (integer) 3获取所有的元素
hadoop:6379> smembers set_test 1) "1" 2) "2" 3) "3" 4) "4"获取元素的个数
hadoop:6379> scard set_test (integer) 4使用set结构来保存网站的UV
hadoop:6379> sadd uv:2020-10-22 001 002 003 (integer) 3 hadoop:6379> sadd uv:2020-10-22 004 (integer) 1 #统计2020-10-22一共有多少个独立用户访问过 hadoop:6379> scard uv:2020-10-22 (integer) 4删除一个key,对应的数据结构
hadoop:6379> keys * 1) "userinfo" 2) "hello1" 3) "set_test" 4) "list" 5) "uv:2020-10-22" 6) "hello" 7) "hello2" 8) "PV" hadoop:6379> del list (integer) 1 hadoop:6379> keys * 1) "userinfo" 2) "hello1" 3) "set_test" 4) "uv:2020-10-22" 5) "hello" 6) "hello2" 7) "PV"判断set_test这个key是否存在 返回1表示存在,返回0表示不存在
hadoop:6379> exists set_test (integer) 1 hadoop:6379> exists set_test1 (integer) 0redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员 它用来保存需要排序的数据,例如排行榜。一个班的语文成绩,一个公司的员工工资,一个论坛的帖子等。 有序集合中,每个元素都带有score(权重),以此来对元素进行排序 它有三个元素:key、member和score。以语文成绩为例,key是考试名称(期中考试、期末考试等),member是学生名字,score是成绩。
向zset中添加页面的pv值
hadoop:6379> zadd pv 100 page1.html 200 page2.html 300 page3.html (integer) 3获取一共有几个页面
hadoop:6379> zcard pv (integer) 3给page1.html页面增加pv值
hadoop:6379> zincrby pv 10 page1.html "110"创建两个保存pv的zset
hadoop:6379> zadd pv_zset1 10 page1.html 20 page2.html (integer) 2 hadoop:6379> zadd pv_zset2 5 page1.html 10 page2.html (integer) 2 hadoop:6379> zinterstore pv_zset_result 2 pv_zset1 pv_zset2 (integer) 2获取zset中的所有成员
hadoop:6379> zrange pv_zset_result 0 -1 withscores 1) "page1.html" 2) "15" 3) "page2.html" 4) "30"求page1.html在页面pv中的排名
#按升序统计(从小到大) hadoop:6379> zrank pv_zset_result page1.html (integer) 0 hadoop:6379> zrank pv_zset_result page2.html (integer) 1求page1.html在页面pv中的排名
#这个操作效率很高,并不是重新排序,只是把zset反转 #按降序统计(从大到小) hadoop:6379> zrevrank pv_zset_result page1.html (integer) 1 hadoop:6379> zrevrank pv_zset_result page2.html (integer) 0