方法一
redis-server /path/to/redis.conf redis-server /path/to/redis.conf --loglevel warning //设置日志级别
方法二
redis-cli redis > CONFIG SET loglevel warning
redis不可以设置数据库的名称,数据库是通过编号来使用的。 redis只有一个全局的密码,不存在访问某个数据库的密码。
(1)添加数据和查找数据,通过set/get命令添加和获取数据
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> set bar 1 OK 127.0.0.1:6379[1]> get bar "1" 127.0.0.1:6379[1]> get aaa (nil)
(2)判断一个键是否存在,exists命令可以判断key是否存在,存在返回1,不存在返回0
127.0.0.1:6379[1]> exists bar (integer) 1 127.0.0.1:6379[1]> exists aaa (integer) 0
(3)删除数据,del命令删除key,返回值为成功删除key的个数
127.0.0.1:6379[1]> del aaa (integer) 0 127.0.0.1:6379[1]> del bar (integer) 1
(4)获取value的类型
127.0.0.1:6379[1]> set bar 1 OK 127.0.0.1:6379[1]> type bar string
(5)自增和自减,incr 、decr以及incrby和decrby实现整数的加减
127.0.0.1:6379[1]> INCR ab (integer) 1 127.0.0.1:6379[1]> INCR ab (integer) 2 127.0.0.1:6379[1]> INCRBY ab 2 (integer) 4 127.0.0.1:6379[1]> DECR ab (integer) 3 127.0.0.1:6379[1]> DECRBY ab 2 (integer) 1
(6)增加指定浮点数,incrbyfloat可以指定自增的浮点数
127.0.0.1:6379[1]> INCRBYFLOAT ab 1.1 "2.1"
(7)向尾部追加,append命令可以向字符尾部追加内容
127.0.0.1:6379[1]> set key hello OK 127.0.0.1:6379[1]> append key world (integer) 10 127.0.0.1:6379[1]> get key "helloworld"
(8)获取字符串长度,strlen获取value的长度
127.0.0.1:6379[1]> STRLEN key (integer) 10
(9)批量设置和获取,通过mset和mget命令可以批量执行设置和获取
127.0.0.1:6379[1]> mset key1 va1 key2 va2 OK 127.0.0.1:6379[1]> mget key1 key2 1) "va1" 2) "va2"
(10)位操作
getbit key offset setbit key offset bitcount key [start] [end] bitop operation destkey key [key ...]
(1)存储方法,可以通过hset和hget来设置和获取数据
127.0.0.1:6379[1]> hset user id 1 (integer) 1 127.0.0.1:6379[1]> hset user name test (integer) 1 127.0.0.1:6379[1]> hget user id "1" 127.0.0.1:6379[1]> hget user name "test"
(2)判断字段是否存在,hexists命令,返回1存在,返回0不存在
127.0.0.1:6379[1]> hexists user id (integer) 1 127.0.0.1:6379[1]> hexists user age (integer) 0
(3)使用hsetnx(hset if not exists)如果不存在赋值
127.0.0.1:6379[1]> hsetnx user age 111 (integer) 1 127.0.0.1:6379[1]> hget user age "111"
(4)增加数字
127.0.0.1:6379[1]> hincrby user score 60 (integer) 60 127.0.0.1:6379[1]> hget user score "60"
(5)删除字段
127.0.0.1:6379[1]> hdel user score (integer) 1 127.0.0.1:6379[1]> hget user score (nil)
添加了两条数据,id为1的名字为test分数为90,而id为2的名字为test2分数为90.
(2)获取多个字段的数据,需要使用hmget命令,并制定字段名称 127.0.0.1:6379[1]> hmget user:1 name score 1) "test" 2) "90" (3)获取一行数据,不需要指定字段名称,只需要指出键名 127.0.0.1:6379[1]> hgetall user:2 1) "name" 2) "test2" 3) "score" 4) "99" (4)只获取字段名或字段值 127.0.0.1:6379[1]> hkeys user:1 1) "name" 2) "score" 127.0.0.1:6379[1]> hvals user:1 1) "test" 2) "90"(5)获取字段数量 127.0.0.1:6379[1]> hlen user:1 (integer) 2
需要注意的是,散列类型无法获取所有存在的键值,也就是id,如果删除了中间某个id的话,只可以使用exist命令来判断key是否存在。
列表的基本操作命令都是以l开头的。
(1)添加和弹出元素使用lpush和rpush以及lpop和rpop分别从列表的左侧和右侧添加和删除元素。 127.0.0.1:6379> lpush user test (integer) 1 127.0.0.1:6379> rpush user test1 (integer) 2 127.0.0.1:6379> lpop user "test" 127.0.0.1:6379> rpop user "test1" 127.0.0.1:6379> (2)llen查看元素个数 127.0.0.1:6379> llen user (integer) 0 127.0.0.1:6379> lpush user test (integer) 1 127.0.0.1:6379> llen user (integer) 1 (3)获取列表片段 127.0.0.1:6379> lrange user 0 3 1) "test" 2) "test1" 3) "test2" 4) "test3" 127.0.0.1:6379> lrange user 0 2 1) "test" 2) "test1" 3) "test2"(4)从列表中删除元素 lrem key count value @count 为删除个数,大于0的话从左边开始,小于0的话从右边开始 @value 要删除的值 我们可以把数据的id存储在列表中,当某一行数据被删除时候,只需要删除为该value为key即可,而查询数据的时候,需要先从列表中读取所有的id,再从散列表中读取数据。 (5)获取和设置索引元素值 (6)向列表中插入元素 127.0.0.1:6379> lrange user 0 -1 1) "test" 2) "test1" 3) "test2" 4) "test3" 127.0.0.1:6379> linsert user before test1 test0 (integer) 5 127.0.0.1:6379> linsert user after test1 test1.5 (integer) 6 127.0.0.1:6379> lrange user 0 -1 1) "test" 2) "test0" 3) "test1" 4) "test1.5" 5) "test2" 6) "test3"
(7)将元素从一个列表转移到另外一个列表 rdroplpush source destination 从source列表的右侧弹出一个数据,添加到destination列表的左侧
(2)判断元素是否在集合中可以使用sismember命令。 127.0.0.1:6379> sismember key 1 (integer) 1 127.0.0.1:6379> sismember key 3 (integer) 0
(3)集合运算 sdiff key [key...] sinter key [key...] sunion key [key...]
(4)获取元素个数 127.0.0.1:6379> scard key (integer) 1
(5)集合运算并保存结果 sdiffstore destination key [key...] sinterstore destination key[key...] sunionstore destination key[key...]
(6)随机获取集合的元素 srandmember key [count] 127.0.0.1:6379> srandmember key 3 1) "4" 2) "2" 3) "3"
需要注意,srandmember取到的随机元素在集合比较小的情况下并不是完全随机的,由于redis的存储方法是利用哈希桶+数据链的存储方式,当桶和每个桶内元素的个数都非常小时就会造成取到相同数据的情况。
(1)zadd添加元素,并设置分数score
127.0.0.1:6379> zadd students 60 xiaoming (integer) 1 127.0.0.1:6379> zadd students 80 daxiong (integer) 1 (2)zscore获取元素分数 127.0.0.1:6379> zscore students xiaoming "60" (3)获取排名在某个范围的列表,元素是从0开始的 127.0.0.1:6379> zrange students 0 1 1) "xiaoming" 2) "daxiong" (4)获取指定分数范围的元素,用于筛选数据 127.0.0.1:6379> zrangebyscore students 0 70 1) "xiaoming" 127.0.0.1:6379> zrangebyscore students 0 100 1) "xiaoming" 2) "daxiong" limit命令可以实现sql语句中的Limit效果 获取从0开始的前2个数据 127.0.0.1:6379> zrangebyscore students 0 100 limit 0 2 1) "xiaoming" 2) "daxiong" 获取从1开始的前2个数据 127.0.0.1:6379> zrangebyscore students 0 100 limit 1 2 1) "daxiong" (5)增加和减少某个元素的分数 127.0.0.1:6379> zincrby students 5 xiaoming "65" 127.0.0.1:6379> zincrby students -5 xiaoming "60" (6)获取集合中元素个数 127.0.0.1:6379> zcard students (integer) 2 (7)获取指定分数范围内的元素个数 zcount key min max 127.0.0.1:6379> zcount students 0 70 (integer) 1 127.0.0.1:6379> zcount students 0 90 (integer) 2(8)删除一个或多个元素 zrem key [key...] (9)按照排名范围来删除元素 zremrangebyrank key start stop (10)按照分数范围来删除元素 zremrangebyscore key min max (11)获取元素的排名,注意元素从0开始排序 127.0.0.1:6379> zrank students xiaoming (integer) 0
redis的事务是一组命令的集合。事务同命令一样都是redis的最小执行单元,一个事务中的命令要么执行要么都不执行。
首先需要multi命令来开始事务,用exec命令来执行事务。
127.0.0.1:6379> multi OK 127.0.0.1:6379> hset user:1 name xiaoming QUEUED 127.0.0.1:6379> hset user:1 name daxiong QUEUED 127.0.0.1:6379> exec 1) (integer) 0 2) (integer) 0 127.0.0.1:6379> hgetall user:1 1) "name" 2) "daxiong" 3) "score" 4) "61"multi代表事务的开始,返回ok表示成功; exec代表事务的执行,返回各个命令的执行结果; 在multi和exec中间添加需要执行的命令。 在multi开始后,所有命令都不会执行,而是全部暂时保存起来,在执行exec命令后会按照命令保存的顺序依次执行各个命令。 如果事务执行过程中存在失败的情况下(某一个命令执行失败后其他命令会继续执行),需要开发人员自行处理后果。 注意:redis不支持回滚操作,导致redis的错误异常需要开发人员处理。
(2)查询剩余超时时间 ttl key 127.0.0.1:6379> expire session:aabb 300 (integer) 1 127.0.0.1:6379> ttl session:aabb (integer) 290
(3)取消超时时间 127.0.0.1:6379> get session:aabb "300" 127.0.0.1:6379> ttl session:aabb (integer) 280 127.0.0.1:6379> persist session:aabb (integer) 1 127.0.0.1:6379> ttl session:aabb (integer) -1
(4)如果使用设置相关的命令,会取消该键的超时间
可以对有序集合的值进行排序: 127.0.0.1:6379> zadd set 50 2 40 3 20 1 60 5 (integer) 4 127.0.0.1:6379> sort set 1) "1" 2) "2" 3) "3" 4) "5"
sort命令可以添加desc来实现倒序排序 127.0.0.1:6379> sort set desc 1) "5" 2) "3" 3) "2" 4) "1"
转载于:https://www.cnblogs.com/owenma/p/9268925.html
相关资源:JAVA上百实例源码以及开源项目