终于有空可以整理一下最近学习的一些东西了。redis作为一个消息队列真的是好用。也试着去学习了一下kafka,结果第一步安装的时候就把我干趴了。kafka运行需要java8的环境,而配置java环境让我感觉好浪费时间和经历,本着我大python的信条“人生苦短,我用python”,怎么能去搞一个安装起来就那么复杂的东西呢?故果断舍弃,回到了我redis的怀抱。
Mac安装redis,超级简单: brew install redis。
配置文件路径为(/usr/local/etc/redis.conf)
ps:关于配置文件遇到的一些问题和配置文件的配置,以后会在写一篇记录一下。
redis一些常用的命令
启动redis: redis-server (如果不能启动,需要进入redis的安装目录。/usr/local/etc)
查看redis进程: ps aux| grep reids
结束redis进程: kill -9 pid
客户端启用reids: redis-cli (开启一个新终端)
切换数据库: select 10
redis使用
str类型
添加/修改:
设置键值[O(1)]:set key value set name pp
设置键值及过期时间: setex key seconds value setex name 300 pp
设置多个键值[O(1)]: mset key1 value1 key2 value2 mset class1 python class2 java
追加值: append key value append class1 pythonNB (class1:pythonpythonNB)
获取:
获取单个值: get key get name
获取多个值: mget key1 key2 mget class1 class2
删除:
删除值: del key1 key2 del class1 class2
hash类型
添加/修改:
设置单个属性 hset key field value hset info name pp
设置多个属性 hmset key field1 value1 field2 value2 hmset info name pp age 18
获取:
获取指定key对应的所有属性 hkeys key hkeys info
获取指定key对应的单一属性 hget key field1 hget info name
获取指定key对应的多个属性 hmget key field1 field2 hmget info name age
获取指定key对应的所有的value hvals key hvals info
删除:
删除整个key: del key del info
删除key对应的某些属性: hdel key field1 field2 del info name age
list类型
增加:
从左侧插入value: lpush key value1 value2 lpush name ming uzi mlxg [mlxg,uzi,ming]
从右侧插入value: rpush key value1 value2 rpush name ming uzi mlxg [ming,uzi,mlxg]
从指定元素的前/后插入value: linsert key before/after 现有value 新value linsert name before uzi xiaohu [ming,xiaohu,uzi,mlxg]
指定位置value替换 lset key index value lset name 2 kid [ming,xiaohu,kid,mlxg]
获取:
获取范围内的value: lrange key start stop lrange name 0 -1
获取指定位置的value lindex key index lindex name 1
删除:
将列表中前count次出现的value值删掉 lrem key count value lerm name 1 uzi
(ps:count > 0,从头往尾删。 count< 0,从尾到头删。 count = 0,全部删除)
set类型
添加:
添加元素: sadd key member1 member2 sadd name uzi xiaohu
获取:
获取所有元素: smembers key smembers name
删除:
删除指定key srem key srem name
zset类型
添加:
zadd key score1 member1 score2 member2 zadd name 9 uzi 4 xiaohu
(ps:score为权重,zset通过权重从小到大排序。zset具就有唯一性,不重复。没有修改操作。)
获取:
通过索引获取:zrange key start stop zrange name 0 -1
通过权重获取:zrangebyscore key min max zrangebyscore name 6 9
通过member获取对应的score:zscore key member zscore name uzi
删除:
删除指定元素:zrem key member1 member2 zrem name uzi xiaohu
删除指定权重范围内的元素:zremrangebyscore key min max zremrangebyscore name 6 9
键命令
获取所有键: keys *
获取以a开头的所有key:keys "a*" ( ' '里的可以使用正则规则 )
判断key是否存在:exists key exists name
查看key对应的value的类型:type key type name
删除key:del key del name
设置key的过期时间:expire key seconds expire name 200
查看key的有效时间:ttl key ttl name
key重命名:rename/renamenx oldkey newkey rename/renamenx name user
(rename:如果新的key存在则会覆盖掉。renamenx:如果新的key已经存在则不会进行操作。)