String
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| set key value
get key
getset key value #如果key存在,则返回key原来的value并且把新的value存进去(替换)
incr key #key的值是数字,每次加1
incrby key increment #key的值是数字,每次加increment
decr key # key是数字,每次减一
decrby key increment #key的值是数字,每次减increment
append key value #key存在,在key的原value后追加value
|
List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| lpush key value1 value2 ... #倒序(每次都从头加)将value1、value2存进key
rpush key value1 value2 ... #顺序(每次从最后加)将value1、value2存进key
lrange key start end # 返回第start到end的value(从0开始)0 -1 返回所有
lpushx key value #key存在,在key中value的开头把value加进去
rpushx key value #key存在,在key中value的最后把value加进去
lpop key #删除第一个value并将其返回
rpop key #删除最后一个value并将其返回
rpoplpush key1 key2 #将key1最后的一个value加进key2中(加进key2中的操作是lpush)
llen key #返回key中value的数量
lset key index value #将key中第index个的值替换为value(index为正数就从头数第index个value,为负数就是从最后往前数第index个值)
lrem key count value #删除count个值为value的值 count为正是从头删,为负是从最后删
linsert key before | after value1 value2 #在value1之前或之后插入value2
|
set
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| add key member1 member2 ... #将member1 member2 ...添加到key
smembers key #查看key中的所有值
scard key #返回key中member的数量
sismember key member #判断key中时候有member,如果有返回1,没有返回0
srem key member1 member2 ... # 删除key中的member1、member2...
srandmember key #从key中随机抽取一位幸运member
sdiff key1 key2 #如果某值在key1中但是不在key2中,则返回它
sdiffstore key1 key2 key3 # 如果某值在key2中但是不在key3中,把它装进key1
sinter key1 key2 #如果某值同时在key1和key2中,则返回它
sinterstore key1 key2 key3 # 如果某值同时在key2和key3中,则把它装进key1中
sunion key1 key2 #返回key1和key2中的所有值,同时去重复
sunion key1 key2 key3 #将key1和key2中的所有值放到一块,然后去重复放到key1中
|
sortedset
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| zadd key score1 member1 score2 member2 ... #给member1和member2各自加上一个score(数字排序所用) 然后把它们加到key中
zcard key # 获取key中的成员数量
zcount key min max #获取score在min和max中的成员数量(包括min和max)
zincrby key score member #如果member在key中则给member原来的score加上参数score然后存入key中,如果member不存在,则将score member直接存入key中
zrange key min max # 返回score在min和max中的所有成员(包括min和max)
zrangebyscore key min max # 返回score在min和max之间的成员(包括max不包括min)
zrank key member #返回member在key中的位置
zrem key member1 member2 ... #删除member1 member2 ...
zscore key member # 返回指定成员的score
|
hash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| hset key field1 value1 field2 value2 ...#将field1/value1、field2/value2... 按顺序存进key中
hgetall key # 获取key中的所有键值对
hget key field # 获取key中field的value值
hmet key field1 value1 field2 value2 ...# 同hset
hmget key field1 field2 ... #获取field11、field2...的value值
hexists key field #判断field是否在key中,是返回1,否返回0
hlen key #获取key中filed的数量
hincrby key field value #给key中的field加上value(数字)
|
事务
1 2 3
| multi #开启事务 exec #提交事务 discard #回滚事务
|
依赖
1 2 3 4 5
| <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
|
连接池配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="10"/> <property name="maxIdle" value="2"/> <property name="blockWhenExhausted" value="true"/> <property name="maxWaitMillis" value="30000"/> <property name="testOnBorrow" value="true"/> </bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"> <constructor-arg name="poolConfig" ref="poolConfig"/> <constructor-arg name="host" value="10.10.22.189"/> <constructor-arg name="port" value="6379"/> <constructor-arg name="password" value="123456"/> <constructor-arg name="database" value="0"/> <constructor-arg name="timeout" value="30000"/> </bean>
|
测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-redis.xml"); JedisPool pool = context.getBean(JedisPool.class); Jedis client = pool.getResource();
client.lpush("l111", "aaa","bbb","ccc","ddd","aaa"); List<String> list = client.lrange("l111", 0, -1); for (String s : list) { System.out.println(s); } client.close(); pool.close(); }
|
操作java对象
1、通过对象流转换成字节数组输出流输出保存到redis数据库中
2、将对象属性转换成json或者其他字符串类型数据并保存到redis数据库中