//启动redis服务器 点击 redis-server.exe //启动redis客户端 win+R 输入cmd 在终端里输入redis-cli 启动redis客户端 //退出 quit exit //清屏 clear //获取帮助, 可以使用Tab键来切换 help 命令名称 help @组名
所有的key都为String类型,讨论数据类型是说的value的类型
基本操作
//设置String set key value mset key1 value1 key2 value2... //设置生命周期 setex key seconds value //得到String get key mget key1 key2... //删除String del key //向字符串的后面追加字符,如果有就补在后面,如果没有就新建 append key value
String作为数值的操作
//增长指令,只有当value为数字时才能增长 incr key incrby key increment incrbyfloat key increment //减少指令,有当value为数字时才能减少 decr key decrby key increment
tips:
指定生命周期
//设置数据的生命周期,单位 秒 setex key seconds value //设置数据的生命周期,单位 毫秒 psetex key milliseconds value
tips
//插入(如果已存在同名的field,会被覆盖) hset key field value hmset key field1 value1 field2 value2... //插入(如果已存在同名的field,不会被覆盖) hsetnx key field value //取出 hget key field hgetall key //删除 hdel key field1 field2... //获取field数量 hlen key //查看是否存在 hexists key field //获取哈希表中所有的字段名或字段值 hkeys key hvals key //设置指定字段的数值数据增加指定范围的值 hincrby key field increment hdecrby key field increment
//添加修改数据,lpush为从左边添加,rpush为从右边添加 lpush key value1 value2 value3... rpush key value1 value2 value3... //查看数据, 从左边开始向右查看. 如果不知道list有多少个元素,end的值可以为-1,代表倒数第一个元素 //lpush先进的元素放在最后,rpush先进的元素放在最前面 lrange key start end //得到长度 llen key //取出对应索引的元素 lindex key index //获取并移除元素(从list左边或者右边移除) lpop key rpop key
//规定时间内获取并移除数据,b=block,给定一个时间,如果在指定时间内放入了元素,就移除 blpop key1 key2... timeout brpop key1 key2... timeout //移除指定元素 count:移除的个数 value:移除的值。 移除多个相同元素时,从左边开始移除 lrem key count value
//添加元素 sadd key member1 member2... //查看元素 smembers key //移除元素 srem key member //查看元素个数 scard key //查看某个元素是否存在 sismember key member
//从set中任意选出count个元素 srandmember key count //从set中任意选出count个元素并移除 spop key count //求两个集合的交集、并集、差集 sinter key1 key2... sunion key1 key2... sdiff key1 key2... //求两个set的交集、并集、差集,并放入另一个set中 sinterstore destination key1 key2... sunionstore destination key1 key2... sdiffstore destination key1 key2... //求指定元素从原集合放入目标集合中 smove source destination key
//插入元素, 需要指定score(用于排序) zadd key score1 member1 score2 member2 //查看元素(score升序), 当末尾添加withscore时,会将元素的score一起打印出来 zrange key start end (withscore) //查看元素(score降序), 当末尾添加withscore时,会将元素的score一起打印出来 zrevrange key start end (withscore) //移除元素 zrem key member1 member2... //按条件获取数据, 其中offset为索引开始位置,count为获取的数目 zrangebyscore key min max [withscore] [limit offset count] zrevrangebyscore key max min [withscore] [limit offset count] //按条件移除元素 zremrangebyrank key start end zremrangebysocre key min max //按照从大到小的顺序移除count个值 zpopmax key [count] //按照从小到大的顺序移除count个值 zpopmin key [count] //获得元素个数 zcard key //获得元素在范围内的个数 zcount min max //求交集、并集并放入destination中, 其中numkey1为要去交集或并集集合的数目 zinterstore destination numkeys key1 key2... zunionstore destination numkeys key1 key2...
注意
//查看某个元素的索引(排名) zrank key member zrevrank key member //查看某个元素索引的值 zscore key member //增加某个元素索引的值 zincrby key increment member
//查看key是否存在 exists key //删除key del key //查看key的类型 type key
//设置生命周期 expire key seconds pexpire key milliseconds //查看有效时间, 如果有有效时间则返回剩余有效时间, 如果为永久有效,则返回-1, 如果Key不存在则返回-2 ttl key pttl key //将有时限的数据设置为永久有效 persist key
//根据key查询符合条件的数据 keys pattern
查询规则
//重命名key,为了避免覆盖已有数据,尽量少去修改已有key的名字,如果要使用最好使用renamenx rename key newKey renamenx key newKey //查看所有关于key的操作, 可以使用Tab快速切换 help @generic
//切换数据库 0~15 select index //其他操作 quit ping echo massage
//移动数据, 必须保证目的数据库中没有该数据 mov key db //查看该库中数据总量 dbsize //数据清除 flushdb flushall
JAVA操作Redis需要导入jar或引入Maven依赖
//参数为Redis所在的ip地址和端口号 Jedis jedis = new Jedis(String host, int port)
//操作redis的指令和redis本身的指令几乎一致 jedis.set(String key, String value);
jedis.close();
redis.host=127.0.0.1 redis.port=6379 redis.maxTotal=30 redis.maxIdle=10
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ResourceBundle; public class JedisUtil { private static Jedis jedis = null; private static String host = null; private static int port; private static int maxTotal; private static int maxIdle; //使用静态代码块,只加载一次 static { //读取配置文件 ResourceBundle resourceBundle = ResourceBundle.getBundle("redis"); //获取配置文件中的数据 host = resourceBundle.getString("redis.host"); port = Integer.parseInt(resourceBundle.getString("redis.port")); //读取最大连接数 maxTotal = Integer.parseInt(resourceBundle.getString("redis.maxTotal")); //读取最大活跃数 maxIdle = Integer.parseInt(resourceBundle.getString("redis.maxIdle")); JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(maxTotal); jedisPoolConfig.setMaxIdle(maxIdle); //获取连接池 JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port); jedis = jedisPool.getResource(); } public Jedis getJedis() { return jedis; } }